diff options
author | unknown <monty@mysql.com> | 2005-11-05 01:32:55 +0200 |
---|---|---|
committer | unknown <monty@mysql.com> | 2005-11-05 01:32:55 +0200 |
commit | 2361720c981fc2eb27bc97c1ea7e043b634ffae1 (patch) | |
tree | 4a7b533b6da471261f5c13c46e4e9f256ec63a0c /sql/table.h | |
parent | a3db4abe8b5ecad27adaff3baa78a913d0b84f10 (diff) | |
parent | d4a7867a9ee0a44c8c943c75b5eb15e450ac61a7 (diff) | |
download | mariadb-git-2361720c981fc2eb27bc97c1ea7e043b634ffae1.tar.gz |
Merge mysql.com:/home/my/mysql-5.0
into mysql.com:/home/my/mysql-5.1
BUILD/FINISH.sh:
Auto merged
BitKeeper/deleted/.del-makefilewin.i~5c8479dcb8a455b2:
Auto merged
BitKeeper/deleted/.del-makefilewin~13888739357b3025:
Auto merged
BitKeeper/deleted/.del-makefilewin~14f24a4a173e2fcd:
Auto merged
BitKeeper/deleted/.del-makefilewin~15e9e5c9e8fa870b:
Auto merged
BitKeeper/deleted/.del-makefilewin~1c53f31b88dd36e:
Auto merged
BitKeeper/deleted/.del-makefilewin~1dbc058d76ebf1db:
Auto merged
BitKeeper/deleted/.del-makefilewin~2e0407fe123f8365:
Auto merged
BitKeeper/deleted/.del-makefilewin~2fc379bd4065c995:
Auto merged
BitKeeper/deleted/.del-makefilewin~389ee2dcf79afb79:
Auto merged
BitKeeper/deleted/.del-makefilewin~4d139e182457e553:
Auto merged
BitKeeper/deleted/.del-makefilewin~5104767c73775697:
Auto merged
BitKeeper/deleted/.del-makefilewin~608ed49dcd88e0f7:
Auto merged
BitKeeper/deleted/.del-makefilewin~63acd666293282a:
Auto merged
BitKeeper/deleted/.del-makefilewin~6ba64863bce3d0b8:
Auto merged
BitKeeper/deleted/.del-makefilewin~72a64128bacce71b:
Auto merged
BitKeeper/deleted/.del-makefilewin~78000390c783b1c5:
Auto merged
BitKeeper/deleted/.del-makefilewin~7a9d7d5a42bbfaf5:
Auto merged
Makefile.am:
Auto merged
BitKeeper/deleted/.del-makefilewin~a40ea12eebdd6ef0:
Auto merged
BitKeeper/deleted/.del-makefilewin~aeea7c82f21f7cf5:
Auto merged
BitKeeper/deleted/.del-makefilewin~b643e38d8da389ac:
Auto merged
BitKeeper/deleted/.del-makefilewin~c7b621c745e5de95:
Auto merged
BitKeeper/deleted/.del-makefilewin~c8273a47b90f52bb:
Auto merged
BitKeeper/deleted/.del-makefilewin~d1a9d1f7d33fcb73:
Auto merged
BitKeeper/deleted/.del-makefilewin~d37b6b303348c871:
Auto merged
BitKeeper/deleted/.del-makefilewin~d90f35fdc3f2ee5f:
Auto merged
BitKeeper/deleted/.del-makefilewin~dc4b8ad5ea53bd:
Auto merged
BitKeeper/deleted/.del-makefilewin~dea10ec1c94f7be:
Auto merged
BitKeeper/deleted/.del-makefilewin~ef3a208fa0e9b0db:
Auto merged
BitKeeper/deleted/.del-makefilewin~f1e3b890aa1c9ea3:
Auto merged
BitKeeper/deleted/.del-makefilewin~f4b7b99a887b7de:
Auto merged
BitKeeper/deleted/.del-makefilewin~fdda94ad32fa9e34:
Auto merged
BitKeeper/deleted/.del-my_cnf~977f69858affc57b:
Auto merged
BitKeeper/etc/config:
Auto merged
VC++Files/libmysqld/libmysqld.dsp:
Auto merged
VC++Files/sql/mysqld.dsp:
Auto merged
client/mysqltest.c:
Auto merged
include/Makefile.am:
Auto merged
include/base64.h:
Auto merged
include/my_base.h:
Auto merged
include/mysql_com.h:
Auto merged
libmysqld/Makefile.am:
Auto merged
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/ndb_basic.result:
Auto merged
mysql-test/r/ndb_condition_pushdown.result:
Auto merged
mysql-test/t/alter_table.test:
Auto merged
mysql-test/t/disabled.def:
Auto merged
mysql-test/t/query_cache.test:
Auto merged
mysys/Makefile.am:
Auto merged
mysys/base64.c:
Auto merged
scripts/make_win_src_distribution.sh:
Auto merged
scripts/mysql_create_system_tables.sh:
Auto merged
scripts/mysql_fix_privilege_tables.sql:
Auto merged
sql/Makefile.am:
Auto merged
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/ha_berkeley.cc:
Auto merged
sql/ha_berkeley.h:
Auto merged
sql/ha_federated.cc:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/ha_myisam.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/handler.h:
Auto merged
sql/item.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/repl_failsafe.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/slave.h:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_cache.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_help.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_load.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_prepare.cc:
Auto merged
sql/sql_repl.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_select.h:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/table.h:
Auto merged
storage/heap/_check.c:
Auto merged
storage/heap/hp_create.c:
Auto merged
storage/innobase/include/Makefile.am:
Auto merged
storage/innobase/include/rem0rec.h:
Auto merged
storage/innobase/include/rem0rec.ic:
Auto merged
storage/innobase/row/row0ins.c:
Auto merged
storage/innobase/row/row0upd.c:
Auto merged
storage/myisam/mi_check.c:
Auto merged
storage/myisam/mi_delete.c:
Auto merged
storage/myisam/mi_rkey.c:
Auto merged
storage/myisam/mi_rnext_same.c:
Auto merged
storage/myisam/mi_search.c:
Auto merged
storage/myisam/mi_write.c:
Auto merged
storage/myisam/myisamchk.c:
Auto merged
storage/myisam/myisamdef.h:
Auto merged
storage/myisam/sort.c:
Auto merged
storage/myisammrg/myrg_queue.c:
Auto merged
storage/ndb/config/type_util.mk.am:
Auto merged
storage/ndb/include/kernel/signaldata/DumpStateOrd.hpp:
Auto merged
storage/ndb/include/mgmapi/mgmapi_config_parameters.h:
Auto merged
storage/ndb/include/mgmapi/ndbd_exit_codes.h:
Auto merged
storage/ndb/include/transporter/TransporterCallback.hpp:
Auto merged
storage/ndb/src/common/mgmcommon/IPCConfig.cpp:
Auto merged
storage/ndb/src/common/transporter/SHM_Transporter.cpp:
Auto merged
storage/ndb/src/common/transporter/SHM_Transporter.hpp:
Auto merged
storage/ndb/src/common/transporter/SHM_Transporter.unix.cpp:
Auto merged
storage/ndb/src/common/transporter/SHM_Transporter.win32.cpp:
Auto merged
storage/ndb/src/common/transporter/Transporter.hpp:
Auto merged
storage/ndb/src/common/transporter/TransporterRegistry.cpp:
Auto merged
storage/ndb/src/common/util/Makefile.am:
Auto merged
storage/ndb/src/common/util/Parser.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Auto merged
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
Auto merged
storage/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
Auto merged
storage/ndb/src/kernel/error/ndbd_exit_codes.c:
Auto merged
storage/ndb/src/kernel/vm/FastScheduler.cpp:
Auto merged
storage/ndb/src/kernel/vm/TransporterCallback.cpp:
Auto merged
storage/ndb/src/kernel/vm/VMSignal.hpp:
Auto merged
storage/ndb/src/mgmapi/mgmapi.cpp:
Auto merged
storage/ndb/src/mgmsrv/ConfigInfo.cpp:
Auto merged
storage/ndb/src/mgmsrv/InitConfigFileParser.cpp:
Auto merged
storage/ndb/src/mgmsrv/MgmtSrvr.cpp:
Auto merged
storage/ndb/src/mgmsrv/MgmtSrvr.hpp:
Auto merged
storage/ndb/src/mgmsrv/Services.cpp:
Auto merged
storage/ndb/src/ndbapi/TransporterFacade.cpp:
Auto merged
storage/ndb/test/ndbapi/testBackup.cpp:
Auto merged
storage/ndb/test/ndbapi/testOperations.cpp:
Auto merged
storage/ndb/test/src/HugoCalculator.cpp:
Auto merged
storage/ndb/tools/ndb_condig.cpp:
Auto merged
strings/ctype-big5.c:
Auto merged
strings/ctype-ucs2.c:
Auto merged
support-files/mysql.spec.sh:
Auto merged
BUILD/SETUP.sh:
manual merge
configure.in:
manual merge
mysql-test/r/alter_table.result:
manual merge
sql/handler.cc:
manual merge
sql/mysql_priv.h:
manual merge
sql/records.cc:
manual merge
sql/share/errmsg.txt:
manual merge
sql/sql_table.cc:
manual merge
Fix labels
sql/sql_update.cc:
manual merge
sql/table.cc:
manual merge
sql/unireg.cc:
manual merge
storage/ndb/config/type_ndbapi.mk.am:
manual merge
Diffstat (limited to 'sql/table.h')
-rw-r--r-- | sql/table.h | 50 |
1 files changed, 43 insertions, 7 deletions
diff --git a/sql/table.h b/sql/table.h index c1de61ef273..40c01a1c051 100644 --- a/sql/table.h +++ b/sql/table.h @@ -23,6 +23,7 @@ class st_select_lex_unit; class st_select_lex; class partition_info; class COND_EQUAL; +class Security_context; /* Order clause list element */ @@ -48,6 +49,11 @@ typedef struct st_grant_info uint version; ulong privilege; ulong want_privilege; + /* + Stores the requested access acl of top level tables list. Is used to + check access rights to the underlying tables of a view. + */ + ulong orig_want_privilege; } GRANT_INFO; enum tmp_table_type {NO_TMP_TABLE=0, TMP_TABLE=1, TRANSACTIONAL_TMP_TABLE=2, @@ -366,7 +372,6 @@ typedef struct st_schema_table #define VIEW_CHECK_SKIP 2 struct st_lex; -struct st_table_list; class select_union; class TMP_TABLE_PARAM; @@ -532,11 +537,36 @@ typedef struct st_table_list Field_translator *field_translation; /* array of VIEW fields */ /* pointer to element after last one in translation table above */ Field_translator *field_translation_end; - /* list of ancestor(s) of this table (underlying table(s)/view(s) */ - st_table_list *ancestor; + /* + List (based on next_local) of underlying tables of this view. I.e. it + does not include the tables of subqueries used in the view. Is set only + for merged views. + */ + st_table_list *merge_underlying_list; + /* + - 0 for base tables + - in case of the view it is the list of all (not only underlying + tables but also used in subquery ones) tables of the view. + */ + List<st_table_list> *view_tables; /* most upper view this table belongs to */ st_table_list *belong_to_view; /* + The view directly referencing this table + (non-zero only for merged underlying tables of a view). + */ + st_table_list *referencing_view; + /* + Security context (non-zero only for tables which belong + to view with SQL SECURITY DEFINER) + */ + Security_context *security_ctx; + /* + This view security context (non-zero only for views with + SQL SECURITY DEFINER) + */ + Security_context *view_sctx; + /* List of all base tables local to a subquery including all view tables. Unlike 'next_local', this in this list views are *not* leaves. Created in setup_tables() -> make_leaves_list(). @@ -592,8 +622,6 @@ typedef struct st_table_list bool compact_view_format; /* Use compact format for SHOW CREATE VIEW */ /* view where processed */ bool where_processed; - /* db part was not defined in table definition */ - bool current_db_used; /* FRMTYPE_ERROR if any type is acceptable */ enum frm_type_enum required_type; char timestamp_buffer[20]; /* buffer for timestamp (19+1) */ @@ -604,9 +632,9 @@ typedef struct st_table_list bool prelocking_placeholder; void calc_md5(char *buffer); - void set_ancestor(); + void set_underlying_merge(); int view_check_option(THD *thd, bool ignore_failure); - bool setup_ancestor(THD *thd); + bool setup_underlying(THD *thd); void cleanup_items(); bool placeholder() {return derived || view; } void print(THD *thd, String *str); @@ -634,6 +662,14 @@ typedef struct st_table_list return prep_where(thd, conds, no_where_clause); return FALSE; } + + void register_want_access(ulong want_access); + bool prepare_security(THD *thd); +#ifndef NO_EMBEDDED_ACCESS_CHECKS + Security_context *find_view_security_context(THD *thd); + bool prepare_view_securety_context(THD *thd); +#endif + private: bool prep_check_option(THD *thd, uint8 check_opt_type); bool prep_where(THD *thd, Item **conds, bool no_where_clause); |