The world's most popular open source database
#include <table.h>
Collaboration diagram for st_table_list:

Definition at line 630 of file table.h.
| st_table_list::st_table_list | ( | ) | [inline] |
| void st_table_list::calc_md5 | ( | char * | buffer | ) |
Definition at line 2565 of file table.cc.
References my_MD5Final(), my_MD5Init(), and my_MD5Update().
Referenced by mysql_register_view(), and view_checksum().
02566 { 02567 my_MD5_CTX context; 02568 uchar digest[16]; 02569 my_MD5Init(&context); 02570 my_MD5Update(&context,(uchar *) query.str, query.length); 02571 my_MD5Final(digest, &context); 02572 sprintf((char *) buffer, 02573 "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", 02574 digest[0], digest[1], digest[2], digest[3], 02575 digest[4], digest[5], digest[6], digest[7], 02576 digest[8], digest[9], digest[10], digest[11], 02577 digest[12], digest[13], digest[14], digest[15]); 02578 }
Here is the call graph for this function:

Here is the caller graph for this function:

| bool st_table_list::check_single_table | ( | st_table_list ** | table, | |
| table_map | map, | |||
| st_table_list * | view | |||
| ) |
Definition at line 2988 of file table.cc.
References merge_underlying_list, next_local, table, TRUE, and view.
Referenced by check_insert_fields().
02990 { 02991 for (TABLE_LIST *tbl= merge_underlying_list; tbl; tbl= tbl->next_local) 02992 { 02993 if (tbl->table) 02994 { 02995 if (tbl->table->map & map) 02996 { 02997 if (*table) 02998 return TRUE; 02999 *table= tbl; 03000 tbl->check_option= view->check_option; 03001 } 03002 } 03003 else if (tbl->check_single_table(table, map, view)) 03004 return TRUE; 03005 } 03006 return FALSE; 03007 }
Here is the caller graph for this function:

| void st_table_list::cleanup_items | ( | ) |
Definition at line 2924 of file table.cc.
References Item::cleanup_processor(), field_translation, and field_translation_end.
02925 { 02926 if (!field_translation) 02927 return; 02928 02929 for (Field_translator *transl= field_translation; 02930 transl < field_translation_end; 02931 transl++) 02932 transl->item->walk(&Item::cleanup_processor, 0, 0); 02933 }
Here is the call graph for this function:

| st_table_list * st_table_list::find_underlying_table | ( | TABLE * | table | ) |
Definition at line 2902 of file table.cc.
References merge_underlying_list, next_local, and table.
Referenced by unique_table().
02903 { 02904 /* is this real table and table which we are looking for? */ 02905 if (table == table_to_find && merge_underlying_list == 0) 02906 return this; 02907 02908 for (TABLE_LIST *tbl= merge_underlying_list; tbl; tbl= tbl->next_local) 02909 { 02910 TABLE_LIST *result; 02911 if ((result= tbl->find_underlying_table(table_to_find))) 02912 return result; 02913 } 02914 return 0; 02915 }
Here is the caller graph for this function:

| Security_context * st_table_list::find_view_security_context | ( | THD * | thd | ) |
Definition at line 3261 of file table.cc.
References alias, DBUG_ASSERT, DBUG_ENTER, DBUG_PRINT, DBUG_RETURN, prelocking_placeholder, referencing_view, view, view_sctx, and view_suid.
Referenced by prepare_security().
03262 { 03263 Security_context *sctx; 03264 TABLE_LIST *upper_view= this; 03265 DBUG_ENTER("st_table_list::find_view_security_context"); 03266 03267 DBUG_ASSERT(view); 03268 while (upper_view && !upper_view->view_suid) 03269 { 03270 DBUG_ASSERT(!upper_view->prelocking_placeholder); 03271 upper_view= upper_view->referencing_view; 03272 } 03273 if (upper_view) 03274 { 03275 DBUG_PRINT("info", ("Securety context of view %s will be used", 03276 upper_view->alias)); 03277 sctx= upper_view->view_sctx; 03278 DBUG_ASSERT(sctx); 03279 } 03280 else 03281 { 03282 DBUG_PRINT("info", ("Current global context will be used")); 03283 sctx= thd->security_ctx; 03284 } 03285 DBUG_RETURN(sctx); 03286 }
Here is the caller graph for this function:

| TABLE_LIST * st_table_list::first_leaf_for_name_resolution | ( | ) |
Definition at line 3088 of file table.cc.
References DBUG_ASSERT, is_leaf_for_name_resolution(), st_nested_join::join_list, JOIN_TYPE_RIGHT, LINT_INIT, nested_join, and outer_join.
Referenced by push_new_name_resolution_context(), Field_iterator_table_ref::set(), setup_natural_join_row_types(), and store_top_level_join_columns().
03089 { 03090 TABLE_LIST *cur_table_ref; 03091 NESTED_JOIN *cur_nested_join; 03092 LINT_INIT(cur_table_ref); 03093 03094 if (is_leaf_for_name_resolution()) 03095 return this; 03096 DBUG_ASSERT(nested_join); 03097 03098 for (cur_nested_join= nested_join; 03099 cur_nested_join; 03100 cur_nested_join= cur_table_ref->nested_join) 03101 { 03102 List_iterator_fast<TABLE_LIST> it(cur_nested_join->join_list); 03103 cur_table_ref= it++; 03104 /* 03105 If the current nested join is a RIGHT JOIN, the operands in 03106 'join_list' are in reverse order, thus the first operand is 03107 already at the front of the list. Otherwise the first operand 03108 is in the end of the list of join operands. 03109 */ 03110 if (!(cur_table_ref->outer_join & JOIN_TYPE_RIGHT)) 03111 { 03112 TABLE_LIST *next; 03113 while ((next= it++)) 03114 cur_table_ref= next; 03115 } 03116 if (cur_table_ref->is_leaf_for_name_resolution()) 03117 break; 03118 } 03119 return cur_table_ref; 03120 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void st_table_list::hide_view_error | ( | THD * | thd | ) |
Definition at line 2865 of file table.cc.
References ER_BAD_FIELD_ERROR, ER_COLUMNACCESS_DENIED_ERROR, ER_NO_DEFAULT_FOR_FIELD, ER_NO_DEFAULT_FOR_VIEW_FIELD, ER_PROCACCESS_DENIED_ERROR, ER_SP_DOES_NOT_EXIST, ER_TABLEACCESS_DENIED_ERROR, ER_VIEW_INVALID, my_error(), MYF, LEX_STRING::str, top_table(), view_db, and view_name.
Referenced by setup_tables_and_check_access().
02866 { 02867 /* Hide "Unknown column" or "Unknown function" error */ 02868 if (thd->net.last_errno == ER_BAD_FIELD_ERROR || 02869 thd->net.last_errno == ER_SP_DOES_NOT_EXIST || 02870 thd->net.last_errno == ER_PROCACCESS_DENIED_ERROR || 02871 thd->net.last_errno == ER_COLUMNACCESS_DENIED_ERROR || 02872 thd->net.last_errno == ER_TABLEACCESS_DENIED_ERROR) 02873 { 02874 TABLE_LIST *top= top_table(); 02875 thd->clear_error(); 02876 my_error(ER_VIEW_INVALID, MYF(0), top->view_db.str, top->view_name.str); 02877 } 02878 else if (thd->net.last_errno == ER_NO_DEFAULT_FOR_FIELD) 02879 { 02880 TABLE_LIST *top= top_table(); 02881 thd->clear_error(); 02882 // TODO: make correct error message 02883 my_error(ER_NO_DEFAULT_FOR_VIEW_FIELD, MYF(0), 02884 top->view_db.str, top->view_name.str); 02885 } 02886 }
Here is the call graph for this function:

Here is the caller graph for this function:

| bool st_table_list::is_leaf_for_name_resolution | ( | ) |
Definition at line 3058 of file table.cc.
References is_join_columns_complete, is_natural_join, nested_join, and view.
Referenced by first_leaf_for_name_resolution(), and last_leaf_for_name_resolution().
03059 { 03060 return (view || is_natural_join || is_join_columns_complete || 03061 !nested_join); 03062 }
Here is the caller graph for this function:

| TABLE_LIST * st_table_list::last_leaf_for_name_resolution | ( | ) |
Definition at line 3146 of file table.cc.
References DBUG_ASSERT, is_leaf_for_name_resolution(), st_nested_join::join_list, JOIN_TYPE_RIGHT, nested_join, and outer_join.
Referenced by push_new_name_resolution_context(), Field_iterator_table_ref::set(), and store_top_level_join_columns().
03147 { 03148 TABLE_LIST *cur_table_ref= this; 03149 NESTED_JOIN *cur_nested_join; 03150 03151 if (is_leaf_for_name_resolution()) 03152 return this; 03153 DBUG_ASSERT(nested_join); 03154 03155 for (cur_nested_join= nested_join; 03156 cur_nested_join; 03157 cur_nested_join= cur_table_ref->nested_join) 03158 { 03159 cur_table_ref= cur_nested_join->join_list.head(); 03160 /* 03161 If the current nested is a RIGHT JOIN, the operands in 03162 'join_list' are in reverse order, thus the last operand is in the 03163 end of the list. 03164 */ 03165 if ((cur_table_ref->outer_join & JOIN_TYPE_RIGHT)) 03166 { 03167 List_iterator_fast<TABLE_LIST> it(cur_nested_join->join_list); 03168 TABLE_LIST *next; 03169 cur_table_ref= it++; 03170 while ((next= it++)) 03171 cur_table_ref= next; 03172 } 03173 if (cur_table_ref->is_leaf_for_name_resolution()) 03174 break; 03175 } 03176 return cur_table_ref; 03177 }
Here is the call graph for this function:

Here is the caller graph for this function:

| bool st_table_list::placeholder | ( | ) | [inline] |
Definition at line 820 of file table.h.
Referenced by lock_tables(), mark_real_tables_as_free_for_reuse(), and mysql_lock_have_duplicate().
Here is the caller graph for this function:

Definition at line 2803 of file table.cc.
References and_conds(), Item::check_cols(), check_option, Item::copy_andor_structure(), DBUG_ASSERT, DBUG_ENTER, DBUG_RETURN, FALSE, Item::fix_fields(), Item::fixed, merge_underlying_list, next_local, TRUE, VIEW_CHECK_CASCADED, VIEW_CHECK_NONE, and where.
Referenced by prepare_check_option().
02804 { 02805 DBUG_ENTER("st_table_list::prep_check_option"); 02806 02807 for (TABLE_LIST *tbl= merge_underlying_list; tbl; tbl= tbl->next_local) 02808 { 02809 /* see comment of check_opt_type parameter */ 02810 if (tbl->view && 02811 tbl->prep_check_option(thd, 02812 ((check_opt_type == VIEW_CHECK_CASCADED) ? 02813 VIEW_CHECK_CASCADED : 02814 VIEW_CHECK_NONE))) 02815 { 02816 DBUG_RETURN(TRUE); 02817 } 02818 } 02819 02820 if (check_opt_type) 02821 { 02822 Item *item= 0; 02823 if (where) 02824 { 02825 DBUG_ASSERT(where->fixed); 02826 item= where->copy_andor_structure(thd); 02827 } 02828 if (check_opt_type == VIEW_CHECK_CASCADED) 02829 { 02830 for (TABLE_LIST *tbl= merge_underlying_list; tbl; tbl= tbl->next_local) 02831 { 02832 if (tbl->check_option) 02833 item= and_conds(item, tbl->check_option); 02834 } 02835 } 02836 if (item) 02837 thd->change_item_tree(&check_option, item); 02838 } 02839 02840 if (check_option) 02841 { 02842 const char *save_where= thd->where; 02843 thd->where= "check option"; 02844 if (!check_option->fixed && 02845 check_option->fix_fields(thd, &check_option) || 02846 check_option->check_cols(1)) 02847 { 02848 DBUG_RETURN(TRUE); 02849 } 02850 thd->where= save_where; 02851 } 02852 DBUG_RETURN(FALSE); 02853 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 2720 of file table.cc.
References and_conds(), backup, DBUG_ENTER, DBUG_RETURN, embedding, Item::fix_fields(), Item::fixed, merge_underlying_list, next_local, on_expr, outer_join, TRUE, where, and where_processed.
Referenced by prepare_where().
02722 { 02723 DBUG_ENTER("st_table_list::prep_where"); 02724 02725 for (TABLE_LIST *tbl= merge_underlying_list; tbl; tbl= tbl->next_local) 02726 { 02727 if (tbl->view && tbl->prep_where(thd, conds, no_where_clause)) 02728 { 02729 DBUG_RETURN(TRUE); 02730 } 02731 } 02732 02733 if (where) 02734 { 02735 if (!where->fixed && where->fix_fields(thd, &where)) 02736 { 02737 DBUG_RETURN(TRUE); 02738 } 02739 02740 /* 02741 check that it is not VIEW in which we insert with INSERT SELECT 02742 (in this case we can't add view WHERE condition to main SELECT_LEX) 02743 */ 02744 if (!no_where_clause && !where_processed) 02745 { 02746 TABLE_LIST *tbl= this; 02747 Query_arena *arena= thd->stmt_arena, backup; 02748 arena= thd->activate_stmt_arena_if_needed(&backup); // For easier test 02749 02750 /* Go up to join tree and try to find left join */ 02751 for (; tbl; tbl= tbl->embedding) 02752 { 02753 if (tbl->outer_join) 02754 { 02755 /* 02756 Store WHERE condition to ON expression for outer join, because 02757 we can't use WHERE to correctly execute left joins on VIEWs and 02758 this expression will not be moved to WHERE condition (i.e. will 02759 be clean correctly for PS/SP) 02760 */ 02761 tbl->on_expr= and_conds(tbl->on_expr, where); 02762 break; 02763 } 02764 } 02765 if (tbl == 0) 02766 *conds= and_conds(*conds, where); 02767 if (arena) 02768 thd->restore_active_arena(arena, &backup); 02769 where_processed= TRUE; 02770 } 02771 } 02772 02773 DBUG_RETURN(FALSE); 02774 }
Here is the call graph for this function:

Here is the caller graph for this function:

| bool st_table_list::prepare_check_option | ( | THD * | thd | ) | [inline] |
Definition at line 832 of file table.h.
References effective_with_check, FALSE, and prep_check_option().
Referenced by mysql_insert(), mysql_load(), and setup_conds().
00833 { 00834 bool res= FALSE; 00835 if (effective_with_check) 00836 res= prep_check_option(thd, effective_with_check); 00837 return res; 00838 }
Here is the call graph for this function:

Here is the caller graph for this function:

| bool st_table_list::prepare_security | ( | THD * | thd | ) |
Definition at line 3302 of file table.cc.
References db, DBUG_ASSERT, DBUG_ENTER, DBUG_RETURN, FALSE, fill_effective_table_privileges(), find_view_security_context(), st_table::grant, grant, NO_ACCESS, prelocking_placeholder, prepare_view_securety_context(), st_grant_info::privilege, referencing_view, LEX_STRING::str, table, table_name, TRUE, view, view_db, view_name, and view_tables.
03303 { 03304 List_iterator_fast<TABLE_LIST> tb(*view_tables); 03305 TABLE_LIST *tbl; 03306 DBUG_ENTER("st_table_list::prepare_security"); 03307 #ifndef NO_EMBEDDED_ACCESS_CHECKS 03308 Security_context *save_security_ctx= thd->security_ctx; 03309 03310 DBUG_ASSERT(!prelocking_placeholder); 03311 if (prepare_view_securety_context(thd)) 03312 DBUG_RETURN(TRUE); 03313 thd->security_ctx= find_view_security_context(thd); 03314 while ((tbl= tb++)) 03315 { 03316 DBUG_ASSERT(tbl->referencing_view); 03317 char *db, *table_name; 03318 if (tbl->view) 03319 { 03320 db= tbl->view_db.str; 03321 table_name= tbl->view_name.str; 03322 } 03323 else 03324 { 03325 db= tbl->db; 03326 table_name= tbl->table_name; 03327 } 03328 fill_effective_table_privileges(thd, &tbl->grant, db, table_name); 03329 if (tbl->table) 03330 tbl->table->grant= grant; 03331 } 03332 thd->security_ctx= save_security_ctx; 03333 #else 03334 while ((tbl= tb++)) 03335 tbl->grant.privilege= ~NO_ACCESS; 03336 #endif 03337 DBUG_RETURN(FALSE); 03338 }
Here is the call graph for this function:

| bool st_table_list::prepare_view_securety_context | ( | THD * | thd | ) |
Definition at line 3216 of file table.cc.
References acl_getroot_no_password(), alias, DBUG_ASSERT, DBUG_ENTER, DBUG_PRINT, DBUG_RETURN, definer, ER, ER_NO_SUCH_USER, FALSE, st_lex_user::host, my_error(), MYF, prelocking_placeholder, push_warning_printf(), SQLCOM_SHOW_CREATE, LEX_STRING::str, TRUE, st_lex_user::user, view, view_sctx, view_suid, and MYSQL_ERROR::WARN_LEVEL_NOTE.
Referenced by prepare_security().
03217 { 03218 DBUG_ENTER("st_table_list::prepare_view_securety_context"); 03219 DBUG_PRINT("enter", ("table: %s", alias)); 03220 03221 DBUG_ASSERT(!prelocking_placeholder && view); 03222 if (view_suid) 03223 { 03224 DBUG_PRINT("info", ("This table is suid view => load contest")); 03225 DBUG_ASSERT(view && view_sctx); 03226 if (acl_getroot_no_password(view_sctx, 03227 definer.user.str, 03228 definer.host.str, 03229 definer.host.str, 03230 thd->db)) 03231 { 03232 if (thd->lex->sql_command == SQLCOM_SHOW_CREATE) 03233 { 03234 push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE, 03235 ER_NO_SUCH_USER, 03236 ER(ER_NO_SUCH_USER), 03237 definer.user.str, definer.host.str); 03238 } 03239 else 03240 { 03241 my_error(ER_NO_SUCH_USER, MYF(0), definer.user.str, definer.host.str); 03242 DBUG_RETURN(TRUE); 03243 } 03244 } 03245 } 03246 DBUG_RETURN(FALSE); 03247 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 839 of file table.h.
References effective_algorithm, FALSE, prep_where(), and VIEW_ALGORITHM_MERGE.
Referenced by mysql_insert(), mysql_load(), and setup_conds().
00841 { 00842 if (effective_algorithm == VIEW_ALGORITHM_MERGE) 00843 return prep_where(thd, conds, no_where_clause); 00844 return FALSE; 00845 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void st_table_list::print | ( | THD * | thd, | |
| String * | str | |||
| ) |
Definition at line 14641 of file sql_select.cc.
References alias, String::append(), append_identifier(), belong_to_view, compact_view_format, db, db_length, derived, st_nested_join::join_list, LEX_STRING::length, my_strcasecmp, nested_join, print_join(), schema_table, schema_table_name, LEX_STRING::str, strlen(), table_alias_charset, table_name, table_name_length, view_db, and view_name.
14642 { 14643 if (nested_join) 14644 { 14645 str->append('('); 14646 print_join(thd, str, &nested_join->join_list); 14647 str->append(')'); 14648 } 14649 else 14650 { 14651 const char *cmp_name; // Name to compare with alias 14652 if (view_name.str) 14653 { 14654 // A view 14655 14656 if (!(belong_to_view && 14657 belong_to_view->compact_view_format)) 14658 { 14659 append_identifier(thd, str, view_db.str, view_db.length); 14660 str->append('.'); 14661 } 14662 append_identifier(thd, str, view_name.str, view_name.length); 14663 cmp_name= view_name.str; 14664 } 14665 else if (derived) 14666 { 14667 // A derived table 14668 str->append('('); 14669 derived->print(str); 14670 str->append(')'); 14671 cmp_name= ""; // Force printing of alias 14672 } 14673 else 14674 { 14675 // A normal table 14676 14677 if (!(belong_to_view && 14678 belong_to_view->compact_view_format)) 14679 { 14680 append_identifier(thd, str, db, db_length); 14681 str->append('.'); 14682 } 14683 if (schema_table) 14684 { 14685 append_identifier(thd, str, schema_table_name, 14686 strlen(schema_table_name)); 14687 cmp_name= schema_table_name; 14688 } 14689 else 14690 { 14691 append_identifier(thd, str, table_name, table_name_length); 14692 cmp_name= table_name; 14693 } 14694 } 14695 if (my_strcasecmp(table_alias_charset, cmp_name, alias)) 14696 { 14697 str->append(' '); 14698 append_identifier(thd, str, alias, strlen(alias)); 14699 } 14700 } 14701 }
Here is the call graph for this function:

| void st_table_list::register_want_access | ( | ulong | want_access | ) |
Definition at line 3188 of file table.cc.
References belong_to_view, st_table::grant, grant, merge_underlying_list, next_local, SHOW_VIEW_ACL, table, and st_grant_info::want_privilege.
Referenced by mysql_prepare_update().
03189 { 03190 /* Remove SHOW_VIEW_ACL, because it will be checked during making view */ 03191 want_access&= ~SHOW_VIEW_ACL; 03192 if (belong_to_view) 03193 { 03194 grant.want_privilege= want_access; 03195 if (table) 03196 table->grant.want_privilege= want_access; 03197 } 03198 for (TABLE_LIST *tbl= merge_underlying_list; tbl; tbl= tbl->next_local) 03199 tbl->register_want_access(want_access); 03200 }
Here is the caller graph for this function:

| void st_table_list::reinit_before_use | ( | THD * | thd | ) |
Definition at line 4047 of file table.cc.
References Item::copy_andor_structure(), embedding, FALSE, is_schema_table_processed, st_nested_join::join_list, nested_join, on_expr, prep_on_expr, and table.
Referenced by reinit_stmt_before_use().
04048 { 04049 /* 04050 Reset old pointers to TABLEs: they are not valid since the tables 04051 were closed in the end of previous prepare or execute call. 04052 */ 04053 table= 0; 04054 /* Reset is_schema_table_processed value(needed for I_S tables */ 04055 is_schema_table_processed= FALSE; 04056 04057 TABLE_LIST *embedded; /* The table at the current level of nesting. */ 04058 TABLE_LIST *embedding= this; /* The parent nested table reference. */ 04059 do 04060 { 04061 embedded= embedding; 04062 if (embedded->prep_on_expr) 04063 embedded->on_expr= embedded->prep_on_expr->copy_andor_structure(thd); 04064 embedding= embedded->embedding; 04065 } 04066 while (embedding && 04067 embedding->nested_join->join_list.head() == embedded); 04068 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 3022 of file table.cc.
References alloc_root(), DBUG_ASSERT, FALSE, st_table::insert_values, merge_underlying_list, next_local, st_table_share::rec_buff_length, st_table::s, table, TRUE, and view.
03023 { 03024 if (table) 03025 { 03026 if (!table->insert_values && 03027 !(table->insert_values= (byte *)alloc_root(mem_root, 03028 table->s->rec_buff_length))) 03029 return TRUE; 03030 } 03031 else 03032 { 03033 DBUG_ASSERT(view && merge_underlying_list); 03034 for (TABLE_LIST *tbl= merge_underlying_list; tbl; tbl= tbl->next_local) 03035 if (tbl->set_insert_values(mem_root)) 03036 return TRUE; 03037 } 03038 return FALSE; 03039 }
Here is the call graph for this function:

| void st_table_list::set_underlying_merge | ( | ) |
Definition at line 2593 of file table.cc.
References DBUG_ASSERT, effective_algorithm, merge_underlying_list, multitable_view, next_local, schema_table, set_underlying_merge(), table, view, and VIEW_ALGORITHM_MERGE.
Referenced by mysql_derived_prepare(), and set_underlying_merge().
02594 { 02595 TABLE_LIST *tbl; 02596 02597 if ((tbl= merge_underlying_list)) 02598 { 02599 /* This is a view. Process all tables of view */ 02600 DBUG_ASSERT(view && effective_algorithm == VIEW_ALGORITHM_MERGE); 02601 do 02602 { 02603 if (tbl->merge_underlying_list) // This is a view 02604 { 02605 DBUG_ASSERT(tbl->view && 02606 tbl->effective_algorithm == VIEW_ALGORITHM_MERGE); 02607 /* 02608 This is the only case where set_ancestor is called on an object 02609 that may not be a view (in which case ancestor is 0) 02610 */ 02611 tbl->merge_underlying_list->set_underlying_merge(); 02612 } 02613 } while ((tbl= tbl->next_local)); 02614 02615 if (!multitable_view) 02616 { 02617 table= merge_underlying_list->table; 02618 schema_table= merge_underlying_list->schema_table; 02619 } 02620 } 02621 }
Here is the call graph for this function:

Here is the caller graph for this function:

| bool st_table_list::setup_underlying | ( | THD * | thd | ) |
Definition at line 2641 of file table.cc.
References check_stack_overrun(), DBUG_ENTER, DBUG_RETURN, FALSE, field_translation, field_translation_end, Field_translator::item, merge_underlying_list, Item::name, Field_translator::name, next_local, setup_underlying(), STACK_MIN_SIZE, TRUE, and view.
Referenced by setup_tables(), and setup_underlying().
02642 { 02643 DBUG_ENTER("st_table_list::setup_underlying"); 02644 02645 if (!field_translation && merge_underlying_list) 02646 { 02647 Field_translator *transl; 02648 SELECT_LEX *select= &view->select_lex; 02649 Item *item; 02650 TABLE_LIST *tbl; 02651 List_iterator_fast<Item> it(select->item_list); 02652 uint field_count= 0; 02653 02654 if (check_stack_overrun(thd, STACK_MIN_SIZE, (char *)&field_count)) 02655 { 02656 DBUG_RETURN(TRUE); 02657 } 02658 02659 for (tbl= merge_underlying_list; tbl; tbl= tbl->next_local) 02660 { 02661 if (tbl->merge_underlying_list && 02662 tbl->setup_underlying(thd)) 02663 { 02664 DBUG_RETURN(TRUE); 02665 } 02666 } 02667 02668 /* Create view fields translation table */ 02669 02670 if (!(transl= 02671 (Field_translator*)(thd->stmt_arena-> 02672 alloc(select->item_list.elements * 02673 sizeof(Field_translator))))) 02674 { 02675 DBUG_RETURN(TRUE); 02676 } 02677 02678 while ((item= it++)) 02679 { 02680 transl[field_count].name= item->name; 02681 transl[field_count++].item= item; 02682 } 02683 field_translation= transl; 02684 field_translation_end= transl + field_count; 02685 /* TODO: use hash for big number of fields */ 02686 02687 /* full text function moving to current select */ 02688 if (view->select_lex.ftfunc_list->elements) 02689 { 02690 Item_func_match *ifm; 02691 SELECT_LEX *current_select= thd->lex->current_select; 02692 List_iterator_fast<Item_func_match> 02693 li(*(view->select_lex.ftfunc_list)); 02694 while ((ifm= li++)) 02695 current_select->ftfunc_list->push_front(ifm); 02696 } 02697 } 02698 DBUG_RETURN(FALSE); 02699 }
Here is the call graph for this function:

Here is the caller graph for this function:

| st_table_list* st_table_list::top_table | ( | ) | [inline] |
Definition at line 830 of file table.h.
References belong_to_view.
Referenced by check_key_in_view(), check_that_all_fields_are_given_values(), hide_view_error(), mysql_make_view(), Item_default_value::save_in_field(), setup_conds(), setup_tables(), sp_cache_routines_and_add_tables_for_view(), update_non_unique_table_error(), and view_check_option().
00831 { return belong_to_view ? belong_to_view : this; }
Here is the caller graph for this function:

| int st_table_list::view_check_option | ( | THD * | thd, | |
| bool | ignore_failure | |||
| ) |
Definition at line 2949 of file table.cc.
References check_option, ER, ER_VIEW_CHECK_FAILED, my_error(), MYF, push_warning_printf(), top_table(), Item::val_int(), view, VIEW_CHECK_ERROR, VIEW_CHECK_OK, VIEW_CHECK_SKIP, and MYSQL_ERROR::WARN_LEVEL_ERROR.
Referenced by mysql_insert(), read_fixed_length(), read_sep_field(), and write_record().
02950 { 02951 if (check_option && check_option->val_int() == 0) 02952 { 02953 TABLE_LIST *view= top_table(); 02954 if (ignore_failure) 02955 { 02956 push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_ERROR, 02957 ER_VIEW_CHECK_FAILED, ER(ER_VIEW_CHECK_FAILED), 02958 view->view_db.str, view->view_name.str); 02959 return(VIEW_CHECK_SKIP); 02960 } 02961 else 02962 { 02963 my_error(ER_VIEW_CHECK_FAILED, MYF(0), view->view_db.str, view->view_name.str); 02964 return(VIEW_CHECK_ERROR); 02965 } 02966 } 02967 return(VIEW_CHECK_OK); 02968 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 766 of file table.h.
Referenced by append_algorithm(), fill_defined_view_parts(), and mysql_register_view().
| char * st_table_list::alias |
Definition at line 641 of file table.h.
Referenced by sp_head::add_used_tables_to_table_list(), check_insert_fields(), create_view_field(), delayed_get_table(), find_field_in_table_ref(), find_field_in_view(), find_view_security_context(), Item_field::fix_outer_field(), get_all_tables(), get_key_map_from_key_list(), insert_view_fields(), mark_common_columns(), sp_head::merge_table_list(), multi_delete_set_locks_and_link_aux_tables(), mysql_alter_table(), mysql_create_or_drop_trigger(), mysql_delete(), mysql_derived_prepare(), mysql_ha_close(), mysql_ha_flush(), mysql_ha_hash_get_key(), mysql_ha_open(), mysql_ha_read(), mysql_load(), mysql_prepare_delete(), mysql_prepare_update(), mysql_register_view(), mysql_rm_table_part2(), mysql_schema_table(), mysql_table_dump(), mysql_table_grant(), open_table(), prepare_view_securety_context(), print(), rename_tables(), send_check_errmsg(), Field_iterator_table_ref::set_field_iterator(), sp_add_to_query_tables(), Natural_join_column::table_name(), unique_table(), and update_non_unique_table_error().
Definition at line 752 of file table.h.
Referenced by check_column_grant_in_table_ref(), and get_schema_views_record().
Definition at line 731 of file table.h.
Referenced by sp_head::add_used_tables_to_table_list(), check_column_grant_in_table_ref(), check_key_in_view(), get_table_share_with_create(), mysql_insert_select_prepare(), mysql_make_view(), print(), Item_ident::print(), register_want_access(), reopen_table(), setup_tables_and_check_access(), sp_cache_routines_and_add_tables_for_triggers(), and top_table().
Definition at line 795 of file table.h.
Referenced by sp_head::add_used_tables_to_table_list(), find_field_in_tables(), and sp_add_to_query_tables().
Definition at line 755 of file table.h.
Referenced by prep_check_option(), setup_conds(), and view_check_option().
Definition at line 802 of file table.h.
Referenced by print(), Item_ident::print(), and view_store_create_info().
Definition at line 653 of file table.h.
Referenced by build_equal_items(), and make_outerjoin_info().
Definition at line 800 of file table.h.
Referenced by check_view_insertability(), and mysql_execute_command().
Definition at line 701 of file table.h.
Referenced by multi_delete_set_locks_and_link_aux_tables(), and mysql_multi_delete_prepare().
| char* st_table_list::db |
Definition at line 641 of file table.h.
Referenced by sp_head::add_used_tables_to_table_list(), alloc_table_share(), check_grant(), check_grant_routine(), check_merge_table_access(), check_single_table_access(), check_some_access(), check_table_access(), create_table_def_key(), Table_triggers_list::create_trigger(), Field_iterator_table_ref::db_name(), Natural_join_column::db_name(), delayed_get_table(), Table_triggers_list::drop_trigger(), find_field_in_table_ref(), find_handler(), find_table_in_list(), find_temporary_table(), Item_field::fix_fields(), Item_field::fix_outer_field(), get_all_tables(), get_cached_table_share(), get_table_grant(), get_table_share_with_create(), lock_table_name(), sp_head::merge_table_list(), multi_delete_set_locks_and_link_aux_tables(), multi_update_precheck(), mysql_admin_table(), mysql_alter_table(), mysql_checksum_table(), mysql_create_index(), mysql_create_like_table(), mysql_create_or_drop_trigger(), mysql_create_view(), mysql_derived_prepare(), mysql_drop_index(), mysql_drop_view(), mysql_execute_command(), mysql_ha_close(), mysql_ha_flush(), mysql_ha_open(), mysql_ha_read(), mysql_insert(), mysql_load(), mysql_register_view(), mysql_rename_view(), mysql_rm_table_part2(), mysql_routine_grant(), mysql_table_dump(), mysql_table_grant(), mysql_truncate(), mysqld_show_create(), Log_to_csv_event_handler::open_log_table(), open_table(), open_temporary_table(), open_unireg_entry(), plugin_load(), prepare_for_restore(), prepare_schema_table(), prepare_security(), print(), rename_tables(), rename_temporary_table(), reopen_table(), sp_add_to_query_tables(), sp_exist_routines(), Rpl_filter::tables_ok(), tz_init_table_list(), unique_table(), and ha_myisammrg::update_create_info().
Definition at line 783 of file table.h.
Referenced by sp_head::add_used_tables_to_table_list(), sp_head::merge_table_list(), mysql_create_or_drop_trigger(), mysql_derived_prepare(), mysql_execute_command(), Log_to_csv_event_handler::open_log_table(), print(), sp_add_to_query_tables(), and tz_init_table_list().
Definition at line 762 of file table.h.
Referenced by fill_defined_view_parts(), get_schema_views_record(), mysql_register_view(), prepare_view_securety_context(), and view_store_options().
| st_select_lex_unit* st_table_list::derived |
Definition at line 702 of file table.h.
Referenced by check_grant(), check_table_access(), sp_head::merge_table_list(), multi_delete_set_locks_and_link_aux_tables(), multi_update_precheck(), mysql_derived_filling(), mysql_derived_prepare(), mysql_insert(), open_tables(), placeholder(), and print().
| select_union* st_table_list::derived_result |
Definition at line 693 of file table.h.
Referenced by mysql_derived_filling(), and mysql_derived_prepare().
Definition at line 774 of file table.h.
Referenced by check_insert_fields(), prepare_where(), Field_iterator_table_ref::set_field_iterator(), set_underlying_merge(), and setup_tables().
Definition at line 793 of file table.h.
Referenced by check_interleaving_with_nj(), join_read_const_table(), make_outerjoin_info(), mysql_make_view(), JOIN::optimize(), prep_where(), reinit_before_use(), restore_prev_nj_state(), setup_conds(), and simplify_joins().
Definition at line 715 of file table.h.
Referenced by check_column_grant_in_table_ref(), check_key_in_view(), check_single_table_access(), check_view_insertability(), cleanup_items(), find_field_in_table_ref(), Field_iterator_table_ref::get_or_create_column_ref(), insert_view_fields(), mysql_schema_table(), Natural_join_column::Natural_join_column(), Field_iterator_view::set(), Field_iterator_table_ref::set_field_iterator(), and setup_underlying().
Definition at line 717 of file table.h.
Referenced by check_key_in_view(), cleanup_items(), Field_iterator_table_ref::get_or_create_column_ref(), insert_view_fields(), mysql_schema_table(), Field_iterator_view::set(), Field_iterator_table_ref::set_field_iterator(), and setup_underlying().
Definition at line 775 of file table.h.
Referenced by check_column_grant_in_table_ref(), check_grant(), check_grant_routine(), check_single_table_access(), check_some_access(), check_table_access(), delete_precheck(), get_schema_column_record(), get_table_grant(), Field_iterator_table_ref::grant(), Natural_join_column::grant(), multi_update_precheck(), mysql_create_view(), mysql_derived_prepare(), mysql_execute_command(), mysql_make_view(), mysql_prepare_update(), mysql_table_grant(), open_ltable(), prepare_schema_table(), prepare_security(), and register_want_access().
Definition at line 675 of file table.h.
Referenced by Field_iterator_table_ref::get_or_create_column_ref(), is_leaf_for_name_resolution(), mark_common_columns(), Field_iterator_table_ref::set_field_iterator(), and store_natural_using_join_columns().
Definition at line 666 of file table.h.
Referenced by Field_iterator_table_ref::db_name(), find_field_in_natural_join(), Field_iterator_table_ref::grant(), is_leaf_for_name_resolution(), mark_common_columns(), Field_iterator_table_ref::set_field_iterator(), store_top_level_join_columns(), and Field_iterator_table_ref::table_name().
Definition at line 705 of file table.h.
Referenced by get_schema_tables_result(), and reinit_before_use().
Definition at line 673 of file table.h.
Referenced by find_field_in_natural_join(), Field_iterator_table_ref::get_or_create_column_ref(), Field_iterator_natural_join::set(), Field_iterator_table_ref::set_field_iterator(), and store_natural_using_join_columns().
| List<struct st_table_list>* st_table_list::join_list |
Definition at line 668 of file table.h.
Referenced by add_join_natural(), and store_top_level_join_columns().
Definition at line 780 of file table.h.
Referenced by sp_head::add_used_tables_to_table_list(), lock_tables(), sp_head::merge_table_list(), multi_delete_set_locks_and_link_aux_tables(), mysql_admin_table(), mysql_execute_command(), mysql_insert(), mysql_make_view(), mysql_table_dump(), mysql_test_insert(), mysql_truncate(), Log_to_csv_event_handler::open_log_table(), open_ltable(), open_table(), sp_add_to_query_tables(), and tz_init_table_list().
Definition at line 723 of file table.h.
Referenced by check_single_table(), find_underlying_table(), fix_prepare_info_in_table_list(), mysql_derived_prepare(), mysql_make_view(), mysql_multi_delete_prepare(), prep_check_option(), prep_where(), register_want_access(), set_insert_values(), set_underlying_merge(), setup_tables(), and setup_underlying().
Definition at line 801 of file table.h.
Referenced by mysql_test_update(), mysql_update(), and set_underlying_merge().
Definition at line 660 of file table.h.
Referenced by add_join_natural(), and store_top_level_join_columns().
Definition at line 792 of file table.h.
Referenced by add_key_fields_for_nj(), build_bitmap_for_nested_joins(), build_equal_items(), check_interleaving_with_nj(), find_field_in_table_ref(), first_leaf_for_name_resolution(), is_leaf_for_name_resolution(), join_read_const_table(), last_leaf_for_name_resolution(), make_outerjoin_info(), mark_common_columns(), print(), reinit_before_use(), reset_nj_counters(), restore_prev_nj_state(), Field_iterator_table_ref::set_field_iterator(), simplify_joins(), store_top_level_join_columns(), and update_ref_and_keys().
Definition at line 640 of file table.h.
Referenced by sp_head::add_used_tables_to_table_list(), check_grant(), check_grant_routine(), check_one_table_access(), check_table_access(), st_relay_log_info::clear_tables_to_lock(), close_tables_for_reopen(), has_two_write_locked_tables_with_auto_increment(), lock_tables(), mark_real_tables_as_free_for_reuse(), sp_head::merge_table_list(), multi_update_precheck(), mysql_admin_table(), mysql_create_or_drop_trigger(), mysql_create_view(), mysql_insert(), mysql_load(), mysql_lock_have_duplicate(), mysql_make_view(), mysql_prepare_delete(), mysql_prepare_update(), open_tables(), reinit_stmt_before_use(), some_non_temp_table_to_be_updated(), sp_exist_routines(), Rpl_filter::tables_ok(), tz_init_table_list(), and unique_table().
Definition at line 753 of file table.h.
Referenced by subselect_engine::calc_const_tables(), get_exact_record_count(), get_sort_by_table(), join_read_const_table(), make_join_statistics(), mysql_insert_select_prepare(), opt_sum_query(), JOIN::optimize(), JOIN::prepare(), return_zero_rows(), setup_conds(), setup_tables(), and setup_tables_and_check_access().
Definition at line 638 of file table.h.
Referenced by check_insert_fields(), check_merge_table_access(), check_single_table(), close_cached_tables(), find_field_in_tables(), find_underlying_table(), fix_prepare_info_in_table_list(), locked_named_table(), make_leaves_list(), multi_delete_set_locks_and_link_aux_tables(), multi_update_precheck(), mysql_admin_table(), mysql_checksum_table(), mysql_create_view(), mysql_drop_view(), mysql_execute_command(), mysql_ha_flush(), mysql_insert(), mysql_insert_select_prepare_tester(), mysql_make_view(), mysql_multi_delete_prepare(), mysql_multi_update_prepare(), mysql_prepare_insert(), mysql_rename_tables(), mysql_rm_db(), mysql_rm_table_part2(), prep_check_option(), prep_where(), register_want_access(), rename_tables(), reopen_table(), Name_resolution_context_state::restore_state(), reverse_table_list(), Name_resolution_context_state::save_state(), set_insert_values(), set_underlying_merge(), setup_conds(), setup_tables(), setup_underlying(), tz_load_from_open_tables(), and ha_myisammrg::update_create_info().
Definition at line 684 of file table.h.
Referenced by find_field_in_tables(), Field_iterator_table_ref::next(), setup_natural_join_row_types(), and store_top_level_join_columns().
Definition at line 643 of file table.h.
Referenced by add_join_on(), add_key_fields_for_nj(), build_equal_items(), fix_prepare_info_in_table_list(), join_read_const_table(), make_outerjoin_info(), JOIN::optimize(), prep_where(), reinit_before_use(), simplify_joins(), and store_top_level_join_columns().
| char* st_table_list::option |
Definition at line 781 of file table.h.
Referenced by first_leaf_for_name_resolution(), last_leaf_for_name_resolution(), make_outerjoin_info(), mark_common_columns(), prep_where(), simplify_joins(), and store_top_level_join_columns().
Definition at line 813 of file table.h.
Referenced by sp_head::add_used_tables_to_table_list(), find_view_security_context(), mysql_make_view(), prepare_security(), and prepare_view_securety_context().
Definition at line 652 of file table.h.
Referenced by fix_prepare_info_in_table_list(), reinit_before_use(), and simplify_joins().
| struct st_table_list ** st_table_list::prev_global |
Definition at line 640 of file table.h.
Referenced by sp_head::add_used_tables_to_table_list(), mysql_make_view(), mysql_table_dump(), and tz_init_table_list().
Definition at line 756 of file table.h.
Referenced by get_schema_views_record(), and mysql_register_view().
Definition at line 736 of file table.h.
Referenced by check_grant(), find_view_security_context(), mysql_derived_prepare(), mysql_make_view(), and prepare_security().
Definition at line 806 of file table.h.
Referenced by mysql_admin_table(), mysql_create_or_drop_trigger(), mysql_ha_open(), open_ltable(), and open_new_frm().
| st_select_lex* st_table_list::schema_select_lex |
Definition at line 703 of file table.h.
Referenced by check_grant(), check_single_table_access(), check_some_access(), check_table_access(), create_schema_table(), Field_iterator_table_ref::db_name(), Natural_join_column::db_name(), get_all_tables(), get_schema_column_record(), get_schema_tables_record(), get_schema_tables_result(), lock_tables(), mark_real_tables_as_free_for_reuse(), sp_head::merge_table_list(), multi_update_precheck(), mysql_create_view(), mysql_execute_command(), mysql_lock_have_duplicate(), mysql_schema_table(), mysqld_show_create(), open_tables(), prepare_schema_table(), print(), set_underlying_merge(), store_create_info(), and uses_only_table_name_fields().
| TMP_TABLE_PARAM* st_table_list::schema_table_param |
Definition at line 710 of file table.h.
Referenced by create_view_field(), find_field_in_natural_join(), find_field_in_view(), mysql_schema_table(), and prepare_schema_table().
| Security_context* st_table_list::security_ctx |
Definition at line 741 of file table.h.
Referenced by check_column_grant_in_table_ref(), check_grant(), check_single_table_access(), check_table_access(), and mysql_make_view().
| st_select_lex* st_table_list::select_lex |
Definition at line 713 of file table.h.
Referenced by check_prepared_statement(), find_field_in_tables(), Item_ref::fix_fields(), Item_field::fix_fields(), Item_field::fix_outer_field(), multi_delete_set_locks_and_link_aux_tables(), multi_update_precheck(), mysql_load(), mysql_make_view(), mysql_multi_update(), mysql_multi_update_prepare(), mysql_prepare_insert_check_table(), mysql_schema_table(), mysql_test_delete(), mysql_test_insert_select(), sp_add_to_query_tables(), and unique_table().
Definition at line 798 of file table.h.
Referenced by mysql_execute_command(), mysql_make_view(), and open_table().
Definition at line 758 of file table.h.
Referenced by mysql_execute_command(), and mysql_register_view().
Definition at line 687 of file table.h.
Referenced by add_key_fields_for_nj(), subselect_engine::calc_const_tables(), check_column_grant_in_table_ref(), check_insert_fields(), check_key_in_view(), check_single_table(), check_table_access(), check_update_fields(), check_view_insertability(), Log_to_csv_event_handler::close_log_table(), Table_triggers_list::create_trigger(), Field_iterator_table_ref::db_name(), Natural_join_column::db_name(), LOGGER::deactivate_log_handler(), delayed_get_table(), fill_open_tables(), fill_plugins(), fill_schema_charsets(), fill_schema_coll_charset_app(), fill_schema_collation(), fill_schema_column_privileges(), fill_schema_engines(), fill_schema_events(), fill_schema_files(), fill_schema_proc(), fill_schema_processlist(), fill_schema_schema_privileges(), fill_schema_shemata(), fill_schema_table_privileges(), fill_schema_user_privileges(), fill_status(), fill_variables(), find_field_in_natural_join(), find_field_in_table_ref(), find_field_in_tables(), find_table_in_list(), find_underlying_table(), get_all_tables(), Field_iterator_table_ref::get_natural_column_ref(), Field_iterator_table_ref::get_or_create_column_ref(), get_referential_constraints_record(), get_schema_column_record(), get_schema_constraints_record(), get_schema_key_column_usage_record(), get_schema_partitions_record(), get_schema_stat_record(), get_schema_tables_record(), get_schema_tables_result(), get_schema_triggers_record(), get_sort_by_table(), Field_iterator_table_ref::grant(), Natural_join_column::grant(), grant_load(), handle_grant_table(), insert_fields(), LOGGER::is_general_log_table_enabled(), LOGGER::is_slow_log_table_enabled(), lock_table_name(), lock_tables(), locked_named_table(), Log_to_csv_event_handler::log_general(), Log_to_csv_event_handler::log_slow(), mark_common_columns(), mark_real_tables_as_free_for_reuse(), mysql_admin_table(), mysql_alter_table(), mysql_checksum_table(), mysql_create_or_drop_trigger(), mysql_delete(), mysql_derived_filling(), mysql_derived_prepare(), mysql_execute_command(), mysql_ha_close(), mysql_ha_flush_table(), mysql_ha_open(), mysql_ha_read(), mysql_insert(), mysql_load(), mysql_lock_have_duplicate(), mysql_multi_delete_prepare(), mysql_prepare_insert_check_table(), mysql_prepare_update(), mysql_rm_table_part2(), mysql_schema_table(), mysql_test_delete(), mysql_test_insert(), mysql_test_insert_select(), mysql_test_multidelete(), mysqld_dump_create_info(), mysqld_list_fields(), mysqld_show_create(), Natural_join_column::Natural_join_column(), Field_iterator_natural_join::next(), Log_to_csv_event_handler::open_log_table(), open_ltable(), JOIN::optimize(), prepare_for_repair(), prepare_for_restore(), prepare_security(), read_fixed_length(), read_sep_field(), register_want_access(), reinit_before_use(), reopen_name_locked_table(), reopen_table(), Field_iterator_table::set(), Field_iterator_table_ref::set_field_iterator(), set_insert_values(), set_underlying_merge(), setup_tables(), simplify_joins(), sp_cache_routines_and_add_tables_for_triggers(), store_create_info(), Field_iterator_table_ref::table_name(), tz_load_from_open_tables(), unique_table(), unlock_table_name(), and uses_only_table_name_fields().
Definition at line 797 of file table.h.
Referenced by multi_update_precheck(), and mysql_create_view().
| char * st_table_list::table_name |
Definition at line 641 of file table.h.
Referenced by sp_head::add_used_tables_to_table_list(), alloc_table_share(), check_grant(), check_grant_routine(), create_table_def_key(), Table_triggers_list::create_trigger(), delayed_get_table(), Table_triggers_list::drop_trigger(), find_handler(), find_table_in_list(), find_temporary_table(), Item_field::fix_fields(), get_cached_table_share(), get_table_grant(), get_table_share_with_create(), handle_delayed_insert(), lock_table_name(), sp_head::merge_table_list(), multi_delete_set_locks_and_link_aux_tables(), mysql_admin_table(), mysql_alter_table(), mysql_checksum_table(), mysql_create_index(), mysql_create_like_table(), mysql_create_view(), mysql_derived_prepare(), mysql_drop_index(), mysql_drop_view(), mysql_execute_command(), mysql_ha_close(), mysql_ha_flush(), mysql_ha_open(), mysql_ha_read(), mysql_insert(), mysql_load(), mysql_lock_have_duplicate(), mysql_make_view(), mysql_multi_delete_prepare(), mysql_prepare_update(), mysql_register_view(), mysql_rename_view(), mysql_rm_db(), mysql_rm_table(), mysql_rm_table_part2(), mysql_routine_grant(), mysql_schema_table(), mysql_table_dump(), mysql_table_grant(), mysql_test_insert(), mysql_truncate(), mysqld_list_fields(), mysqld_show_create(), open_table(), open_temporary_table(), open_unireg_entry(), prepare_for_restore(), prepare_schema_table(), prepare_security(), print(), rename_tables(), rename_temporary_table(), reopen_name_locked_table(), reopen_table(), sp_add_to_query_tables(), sp_exist_routines(), Field_iterator_table_ref::table_name(), Rpl_filter::tables_ok(), unique_table(), and ha_myisammrg::update_create_info().
Definition at line 784 of file table.h.
Referenced by sp_head::add_used_tables_to_table_list(), Table_triggers_list::create_trigger(), sp_head::merge_table_list(), multi_delete_set_locks_and_link_aux_tables(), mysql_derived_prepare(), mysql_execute_command(), mysql_schema_table(), print(), sp_add_to_query_tables(), and tz_init_table_list().
| char st_table_list::timestamp_buffer[20] |
Definition at line 785 of file table.h.
Referenced by check_insert_fields(), mysql_insert(), mysql_load(), mysql_multi_delete_prepare(), mysql_prepare_delete(), and open_table().
Definition at line 764 of file table.h.
Referenced by get_schema_views_record(), and mysql_register_view().
Definition at line 787 of file table.h.
Referenced by multi_delete_set_locks_and_link_aux_tables(), and Rpl_filter::tables_ok().
Definition at line 686 of file table.h.
Referenced by ha_myisam::assign_to_keycache(), ha_myisam::preload_keys(), and setup_tables().
| st_lex* st_table_list::view |
Definition at line 714 of file table.h.
Referenced by check_column_grant_in_table_ref(), check_insert_fields(), check_key_in_view(), check_single_table(), check_single_table_access(), check_that_all_fields_are_given_values(), check_view_insertability(), create_view_field(), Field_iterator_table_ref::db_name(), fill_defined_view_parts(), find_field_in_tables(), find_field_in_view(), find_view_security_context(), Item_field::fix_fields(), get_all_tables(), get_referential_constraints_record(), get_schema_constraints_record(), get_schema_key_column_usage_record(), get_schema_partitions_record(), get_schema_stat_record(), get_schema_tables_record(), get_schema_triggers_record(), get_schema_views_record(), Field_iterator_table_ref::grant(), is_leaf_for_name_resolution(), mysql_admin_table(), mysql_derived_prepare(), mysql_execute_command(), mysql_insert(), mysql_multi_delete_prepare(), mysql_multi_update_prepare(), mysql_prepare_insert(), mysql_prepare_insert_check_table(), mysql_test_insert(), mysql_test_update(), mysql_update(), mysqld_list_fields(), mysqld_show_create(), open_table(), open_tables(), placeholder(), prepare_security(), prepare_view_securety_context(), Field_iterator_table_ref::set_field_iterator(), set_insert_values(), set_underlying_merge(), setup_tables(), setup_underlying(), sp_cache_routines_and_add_tables_for_view(), Field_iterator_table_ref::table_name(), update_non_unique_table_error(), view_check_option(), and view_checksum().
Definition at line 759 of file table.h.
Referenced by check_column_grant_in_table_ref(), check_insert_fields(), check_single_table_access(), check_that_all_fields_are_given_values(), Field_iterator_table_ref::db_name(), Natural_join_column::db_name(), Item_field::fix_fields(), get_all_tables(), get_schema_views_record(), get_table_share_with_create(), hide_view_error(), mysql_delete(), mysql_make_view(), mysql_multi_delete_prepare(), mysql_prepare_insert_check_table(), mysql_table_grant(), mysql_test_delete(), mysql_test_multidelete(), mysqld_list_fields(), mysqld_show_create(), prepare_security(), print(), Item_default_value::save_in_field(), update_non_unique_table_error(), and view_store_create_info().
Definition at line 760 of file table.h.
Referenced by check_column_grant_in_table_ref(), check_insert_fields(), check_that_all_fields_are_given_values(), Item_field::fix_fields(), get_schema_views_record(), get_table_share_with_create(), hide_view_error(), mysql_delete(), mysql_make_view(), mysql_multi_delete_prepare(), mysql_prepare_insert_check_table(), mysql_table_grant(), mysql_test_delete(), mysql_test_insert(), mysql_test_multidelete(), mysqld_list_fields(), mysqld_show_create(), prepare_security(), print(), Item_default_value::save_in_field(), Field_iterator_table_ref::table_name(), and update_non_unique_table_error().
| Security_context* st_table_list::view_sctx |
Definition at line 746 of file table.h.
Referenced by find_view_security_context(), and prepare_view_securety_context().
Definition at line 767 of file table.h.
Referenced by fill_defined_view_parts(), find_view_security_context(), get_schema_views_record(), mysql_register_view(), prepare_view_securety_context(), and view_store_options().
Definition at line 754 of file table.h.
Referenced by mysql_execute_command(), mysql_make_view(), prep_check_option(), prep_where(), and setup_conds().
Definition at line 768 of file table.h.
Referenced by get_schema_views_record(), and mysql_register_view().
1.4.7

