Commit 560a9f66 authored by bell@sanja.is.com.ua's avatar bell@sanja.is.com.ua

after review changes

parent 75e7ca47
...@@ -1698,7 +1698,7 @@ int Load_log_event::exec_event(NET* net, struct st_relay_log_info* rli, ...@@ -1698,7 +1698,7 @@ int Load_log_event::exec_event(NET* net, struct st_relay_log_info* rli,
tables.alias = tables.real_name = (char*)table_name; tables.alias = tables.real_name = (char*)table_name;
tables.lock_type = TL_WRITE; tables.lock_type = TL_WRITE;
tables.updating= 1; tables.updating= 1;
tables.non_cachable_table= 1; // just safety for table on stack
// the table will be opened in mysql_load // the table will be opened in mysql_load
if (table_rules_on && !tables_ok(thd, &tables)) if (table_rules_on && !tables_ok(thd, &tables))
{ {
......
...@@ -736,7 +736,7 @@ static int fetch_db_tables(THD *thd, MYSQL *mysql, const char *db, ...@@ -736,7 +736,7 @@ static int fetch_db_tables(THD *thd, MYSQL *mysql, const char *db,
table.db= (char*) db; table.db= (char*) db;
table.real_name= (char*) table_name; table.real_name= (char*) table_name;
table.updating= 1; table.updating= 1;
table.non_cachable_table= 1; // just safety for table on stack
if (!tables_ok(thd, &table)) if (!tables_ok(thd, &table))
continue; continue;
} }
......
...@@ -1216,7 +1216,7 @@ static int create_table_from_dump(THD* thd, MYSQL *mysql, const char* db, ...@@ -1216,7 +1216,7 @@ static int create_table_from_dump(THD* thd, MYSQL *mysql, const char* db,
bzero((char*) &tables,sizeof(tables)); bzero((char*) &tables,sizeof(tables));
tables.db = (char*)db; tables.db = (char*)db;
tables.alias= tables.real_name= (char*)table_name; tables.alias= tables.real_name= (char*)table_name;
tables.non_cachable_table= 1; // just safety for table on stack
/* Drop the table if 'overwrite' is true */ /* Drop the table if 'overwrite' is true */
if (overwrite && mysql_rm_table(thd,&tables,1,0)) /* drop if exists */ if (overwrite && mysql_rm_table(thd,&tables,1,0)) /* drop if exists */
{ {
......
...@@ -172,9 +172,6 @@ my_bool acl_init(THD *org_thd, bool dont_read_acl_tables) ...@@ -172,9 +172,6 @@ my_bool acl_init(THD *org_thd, bool dont_read_acl_tables)
tables[1].next=tables+2; tables[1].next=tables+2;
tables[0].lock_type=tables[1].lock_type=tables[2].lock_type=TL_READ; tables[0].lock_type=tables[1].lock_type=tables[2].lock_type=TL_READ;
tables[0].db=tables[1].db=tables[2].db=thd->db; tables[0].db=tables[1].db=tables[2].db=thd->db;
// just safety for table on stack
tables[0].non_cachable_table= tables[1].non_cachable_table=
tables[2].non_cachable_table= 1;
uint counter; uint counter;
if (open_tables(thd, tables, &counter)) if (open_tables(thd, tables, &counter))
...@@ -1328,7 +1325,7 @@ static bool update_user_table(THD *thd, const char *host, const char *user, ...@@ -1328,7 +1325,7 @@ static bool update_user_table(THD *thd, const char *host, const char *user,
bzero((char*) &tables,sizeof(tables)); bzero((char*) &tables,sizeof(tables));
tables.alias=tables.real_name=(char*) "user"; tables.alias=tables.real_name=(char*) "user";
tables.db=(char*) "mysql"; tables.db=(char*) "mysql";
tables.non_cachable_table= 1; // just safety for table on stack
#ifdef HAVE_REPLICATION #ifdef HAVE_REPLICATION
/* /*
GRANT and REVOKE are applied the slave in/exclusion rules as they are GRANT and REVOKE are applied the slave in/exclusion rules as they are
...@@ -1386,7 +1383,7 @@ static bool test_if_create_new_users(THD *thd) ...@@ -1386,7 +1383,7 @@ static bool test_if_create_new_users(THD *thd)
bzero((char*) &tl,sizeof(tl)); bzero((char*) &tl,sizeof(tl));
tl.db= (char*) "mysql"; tl.db= (char*) "mysql";
tl.real_name= (char*) "user"; tl.real_name= (char*) "user";
tl.non_cachable_table= 1; // just safety for table on stack
db_access=acl_get(thd->host, thd->ip, db_access=acl_get(thd->host, thd->ip,
thd->priv_user, tl.db, 0); thd->priv_user, tl.db, 0);
if (!(db_access & INSERT_ACL)) if (!(db_access & INSERT_ACL))
...@@ -2238,9 +2235,6 @@ int mysql_table_grant(THD *thd, TABLE_LIST *table_list, ...@@ -2238,9 +2235,6 @@ int mysql_table_grant(THD *thd, TABLE_LIST *table_list,
? tables+2 : 0); ? tables+2 : 0);
tables[0].lock_type=tables[1].lock_type=tables[2].lock_type=TL_WRITE; tables[0].lock_type=tables[1].lock_type=tables[2].lock_type=TL_WRITE;
tables[0].db=tables[1].db=tables[2].db=(char*) "mysql"; tables[0].db=tables[1].db=tables[2].db=(char*) "mysql";
// just safety for table on stack
tables[0].non_cachable_table= tables[1].non_cachable_table=
tables[2].non_cachable_table= 1;
#ifdef HAVE_REPLICATION #ifdef HAVE_REPLICATION
/* /*
...@@ -2415,8 +2409,6 @@ int mysql_grant(THD *thd, const char *db, List <LEX_USER> &list, ...@@ -2415,8 +2409,6 @@ int mysql_grant(THD *thd, const char *db, List <LEX_USER> &list,
tables[0].lock_type=tables[1].lock_type=TL_WRITE; tables[0].lock_type=tables[1].lock_type=TL_WRITE;
tables[0].db=tables[1].db=(char*) "mysql"; tables[0].db=tables[1].db=(char*) "mysql";
tables[0].table=tables[1].table=0; tables[0].table=tables[1].table=0;
// just safety for table on stack
tables[0].non_cachable_table= tables[1].non_cachable_table= 1;
#ifdef HAVE_REPLICATION #ifdef HAVE_REPLICATION
/* /*
...@@ -2536,8 +2528,6 @@ my_bool grant_init(THD *org_thd) ...@@ -2536,8 +2528,6 @@ my_bool grant_init(THD *org_thd)
tables[0].next=tables+1; tables[0].next=tables+1;
tables[0].lock_type=tables[1].lock_type=TL_READ; tables[0].lock_type=tables[1].lock_type=TL_READ;
tables[0].db=tables[1].db=thd->db; tables[0].db=tables[1].db=thd->db;
// just safety for table on stack
tables[0].non_cachable_table= tables[1].non_cachable_table= 1;
uint counter; uint counter;
if (open_tables(thd, tables, &counter)) if (open_tables(thd, tables, &counter))
...@@ -3375,9 +3365,6 @@ int open_grant_tables(THD *thd, TABLE_LIST *tables) ...@@ -3375,9 +3365,6 @@ int open_grant_tables(THD *thd, TABLE_LIST *tables)
tables->lock_type= (tables+1)->lock_type= tables->lock_type= (tables+1)->lock_type=
(tables+2)->lock_type= (tables+3)->lock_type= TL_WRITE; (tables+2)->lock_type= (tables+3)->lock_type= TL_WRITE;
tables->db= (tables+1)->db= (tables+2)->db= (tables+3)->db=(char*) "mysql"; tables->db= (tables+1)->db= (tables+2)->db= (tables+3)->db=(char*) "mysql";
// just safety for table on stack
tables[0].non_cachable_table= tables[1].non_cachable_table=
tables[2].non_cachable_table= tables[3].non_cachable_table=1;
#ifdef HAVE_REPLICATION #ifdef HAVE_REPLICATION
/* /*
......
...@@ -156,7 +156,7 @@ OPEN_TABLE_LIST *list_open_tables(THD *thd, const char *wild) ...@@ -156,7 +156,7 @@ OPEN_TABLE_LIST *list_open_tables(THD *thd, const char *wild)
table_list.db= (char*) entry->table_cache_key; table_list.db= (char*) entry->table_cache_key;
table_list.real_name= entry->real_name; table_list.real_name= entry->real_name;
table_list.grant.privilege=0; table_list.grant.privilege=0;
table_list.non_cachable_table= 1; // just safety for table on stack
if (check_table_access(thd,SELECT_ACL | EXTRA_ACL,&table_list,1)) if (check_table_access(thd,SELECT_ACL | EXTRA_ACL,&table_list,1))
continue; continue;
/* need to check if we haven't already listed it */ /* need to check if we haven't already listed it */
...@@ -1333,7 +1333,7 @@ static int open_unireg_entry(THD *thd, TABLE *entry, const char *db, ...@@ -1333,7 +1333,7 @@ static int open_unireg_entry(THD *thd, TABLE *entry, const char *db,
bzero((char*) &table_list, sizeof(table_list)); // just for safe bzero((char*) &table_list, sizeof(table_list)); // just for safe
table_list.db=(char*) db; table_list.db=(char*) db;
table_list.real_name=(char*) name; table_list.real_name=(char*) name;
table_list.non_cachable_table= 1; // just safety for table on stack
safe_mutex_assert_owner(&LOCK_open); safe_mutex_assert_owner(&LOCK_open);
if ((error=lock_table_name(thd,&table_list))) if ((error=lock_table_name(thd,&table_list)))
...@@ -1941,7 +1941,7 @@ find_field_in_tables(THD *thd, Item_ident *item, TABLE_LIST *tables, ...@@ -1941,7 +1941,7 @@ find_field_in_tables(THD *thd, Item_ident *item, TABLE_LIST *tables,
if (find) if (find)
{ {
(*where)= item->cached_table= tables; (*where)= item->cached_table= tables;
if (tables->non_cachable_table) if (!tables->cacheable_table)
item->cached_table= 0; item->cached_table= 0;
if (find == WRONG_GRANT) if (find == WRONG_GRANT)
return (Field*) 0; return (Field*) 0;
...@@ -2002,7 +2002,7 @@ find_field_in_tables(THD *thd, Item_ident *item, TABLE_LIST *tables, ...@@ -2002,7 +2002,7 @@ find_field_in_tables(THD *thd, Item_ident *item, TABLE_LIST *tables,
if (field == WRONG_GRANT) if (field == WRONG_GRANT)
return (Field*) 0; return (Field*) 0;
(*where)= item->cached_table= tables; (*where)= item->cached_table= tables;
if (tables->non_cachable_table) if (!tables->cacheable_table)
item->cached_table= 0; item->cached_table= 0;
if (found) if (found)
{ {
......
...@@ -1022,7 +1022,6 @@ Query_cache::send_result_to_client(THD *thd, char *sql, uint query_length) ...@@ -1022,7 +1022,6 @@ Query_cache::send_result_to_client(THD *thd, char *sql, uint query_length)
Query_cache_table *table = block_table->parent; Query_cache_table *table = block_table->parent;
table_list.db = table->db(); table_list.db = table->db();
table_list.alias= table_list.real_name= table->table(); table_list.alias= table_list.real_name= table->table();
table_list.non_cachable_table= 1; // just safety for table on stack
#ifndef NO_EMBEDDED_ACCESS_CHECKS #ifndef NO_EMBEDDED_ACCESS_CHECKS
if (check_table_access(thd,SELECT_ACL,&table_list,1)) if (check_table_access(thd,SELECT_ACL,&table_list,1))
{ {
......
...@@ -670,9 +670,6 @@ int mysqld_help(THD *thd, const char *mask) ...@@ -670,9 +670,6 @@ int mysqld_help(THD *thd, const char *mask)
tables[3].lock_type= TL_READ; tables[3].lock_type= TL_READ;
tables[3].next= 0; tables[3].next= 0;
tables[0].db= tables[1].db= tables[2].db= tables[3].db= (char*) "mysql"; tables[0].db= tables[1].db= tables[2].db= tables[3].db= (char*) "mysql";
// just safety for table on stack
tables[0].non_cachable_table= tables[1].non_cachable_table=
tables[2].non_cachable_table= tables[3].non_cachable_table= 1;
List<String> topics_list, categories_list, subcategories_list; List<String> topics_list, categories_list, subcategories_list;
String name, description, example; String name, description, example;
......
...@@ -82,7 +82,6 @@ check_insert_fields(THD *thd,TABLE *table,List<Item> &fields, ...@@ -82,7 +82,6 @@ check_insert_fields(THD *thd,TABLE *table,List<Item> &fields,
table_list.real_name= table_list.alias= table->table_name; table_list.real_name= table_list.alias= table->table_name;
table_list.table=table; table_list.table=table;
table_list.grant=table->grant; table_list.grant=table->grant;
table_list.non_cachable_table= 1;
thd->dupp_field=0; thd->dupp_field=0;
if (setup_tables(&table_list) || if (setup_tables(&table_list) ||
......
...@@ -4554,6 +4554,7 @@ TABLE_LIST *st_select_lex::add_table_to_list(THD *thd, ...@@ -4554,6 +4554,7 @@ TABLE_LIST *st_select_lex::add_table_to_list(THD *thd,
ptr->force_index= test(table_options & TL_OPTION_FORCE_INDEX); ptr->force_index= test(table_options & TL_OPTION_FORCE_INDEX);
ptr->ignore_leaves= test(table_options & TL_OPTION_IGNORE_LEAVES); ptr->ignore_leaves= test(table_options & TL_OPTION_IGNORE_LEAVES);
ptr->derived= table->sel; ptr->derived= table->sel;
ptr->cacheable_table= 1;
if (use_index_arg) if (use_index_arg)
ptr->use_index=(List<String> *) thd->memdup((gptr) use_index_arg, ptr->use_index=(List<String> *) thd->memdup((gptr) use_index_arg,
sizeof(*use_index_arg)); sizeof(*use_index_arg));
......
...@@ -987,7 +987,7 @@ void mysql_stmt_prepare(THD *thd, char *packet, uint packet_length) ...@@ -987,7 +987,7 @@ void mysql_stmt_prepare(THD *thd, char *packet, uint packet_length)
int error; int error;
DBUG_ENTER("mysql_stmt_prepare"); DBUG_ENTER("mysql_stmt_prepare");
DBUG_PRINT("pquery", ("%s", packet)); DBUG_PRINT("prep_query", ("%s", packet));
if (stmt == 0) if (stmt == 0)
{ {
...@@ -1133,7 +1133,7 @@ void mysql_stmt_execute(THD *thd, char *packet, uint packet_length) ...@@ -1133,7 +1133,7 @@ void mysql_stmt_execute(THD *thd, char *packet, uint packet_length)
if (!(stmt= find_prepared_statement(thd, stmt_id, "execute", SEND_ERROR))) if (!(stmt= find_prepared_statement(thd, stmt_id, "execute", SEND_ERROR)))
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
DBUG_PRINT("equery:", ("%s", stmt->query)); DBUG_PRINT("exec_query:", ("%s", stmt->query));
/* Check if we got an error when sending long data */ /* Check if we got an error when sending long data */
if (stmt->get_longdata_error) if (stmt->get_longdata_error)
......
...@@ -193,7 +193,7 @@ typedef struct st_table_list ...@@ -193,7 +193,7 @@ typedef struct st_table_list
bool updating; /* for replicate-do/ignore table */ bool updating; /* for replicate-do/ignore table */
bool force_index; /* Prefer index over table scan */ bool force_index; /* Prefer index over table scan */
bool ignore_leaves; /* Preload only non-leaf nodes */ bool ignore_leaves; /* Preload only non-leaf nodes */
bool non_cachable_table; /* stop PS caching */ bool cacheable_table; /* stop PS caching */
} TABLE_LIST; } TABLE_LIST;
typedef struct st_changed_table_list typedef struct st_changed_table_list
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment