Loading sql/sql_delete.cc +7 −4 Original line number Diff line number Diff line Loading @@ -176,15 +176,15 @@ int mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, ORDER *order, } if (using_transactions && ha_autocommit_or_rollback(thd,error >= 0)) error=1; if (deleted) { query_cache_invalidate3(thd, table_list, 1); } if (thd->lock) { mysql_unlock_tables(thd, thd->lock); thd->lock=0; } if (deleted) { query_cache_invalidate3(thd, table_list, 1); } delete select; if (error >= 0) // Fatal error send_error(&thd->net,thd->killed ? ER_SERVER_SHUTDOWN: 0); Loading Loading @@ -357,6 +357,9 @@ void multi_delete::send_error(uint errcode,const char *err) if (!deleted) DBUG_VOID_RETURN; /* Somthing alredy deleted consequently we have to invalidate cache */ query_cache_invalidate3(thd, delete_tables, 1); /* Below can happen when thread is killed early ... */ if (!table_being_deleted) table_being_deleted=delete_tables; Loading sql/sql_insert.cc +6 −4 Original line number Diff line number Diff line Loading @@ -262,6 +262,8 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, List<Item> &fields, info.copied=values_list.elements; end_delayed_insert(thd); } if (info.copied || info.deleted) query_cache_invalidate3(thd, table_list, 1); } else { Loading Loading @@ -303,6 +305,10 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, List<Item> &fields, } if (using_transactions) error=ha_autocommit_or_rollback(thd,error); if (info.copied || info.deleted) { query_cache_invalidate3(thd, table_list, 1); } if (thd->lock) { mysql_unlock_tables(thd, thd->lock); Loading @@ -310,10 +316,6 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, List<Item> &fields, } } thd->proc_info="end"; if (info.copied || info.deleted) { query_cache_invalidate3(thd, table_list, 1); } table->time_stamp=save_time_stamp; // Restore auto timestamp ptr table->next_number_field=0; thd->count_cuted_fields=0; Loading sql/sql_parse.cc +3 −4 Original line number Diff line number Diff line Loading @@ -1707,7 +1707,6 @@ mysql_execute_command(void) check_table_access(thd,SELECT_ACL | INSERT_ACL, tables)) goto error; /* purecov: inspected */ res = mysql_repair_table(thd, tables, &lex->check_opt); query_cache_invalidate3(thd, tables, 0); break; } case SQLCOM_CHECK: Loading @@ -1716,7 +1715,6 @@ mysql_execute_command(void) check_table_access(thd, SELECT_ACL | EXTRA_ACL , tables)) goto error; /* purecov: inspected */ res = mysql_check_table(thd, tables, &lex->check_opt); query_cache_invalidate3(thd, tables, 0); break; } case SQLCOM_ANALYZE: Loading Loading @@ -1980,7 +1978,8 @@ mysql_execute_command(void) for (auxi=(TABLE_LIST*) aux_tables ; auxi ; auxi=auxi->next) auxi->table= ((TABLE_LIST*) auxi->table)->table; if (!thd->fatal_error && (result= new multi_delete(thd,aux_tables, lex->lock_option,table_count))) lex->lock_option, table_count))) { res=mysql_select(thd,tables,select_lex->item_list, select_lex->where, Loading sql/sql_table.cc +4 −0 Original line number Diff line number Diff line Loading @@ -1119,8 +1119,12 @@ static int mysql_admin_table(THD* thd, TABLE_LIST* tables, if (fatal_error) table->table->version=0; // Force close of table else if (open_for_modify) { remove_table_from_cache(thd, table->table->table_cache_key, table->table->real_name); /* May be something modified consequently we have to invalidate cache */ query_cache_invalidate3(thd, table->table, 0); } close_thread_tables(thd); table->table=0; // For query cache if (my_net_write(&thd->net, (char*) packet->ptr(), Loading sql/sql_update.cc +8 −4 Original line number Diff line number Diff line Loading @@ -318,15 +318,15 @@ int mysql_update(THD *thd, } if (using_transactions && ha_autocommit_or_rollback(thd, error >= 0)) error=1; if (updated) { query_cache_invalidate3(thd, table_list, 1); } if (thd->lock) { mysql_unlock_tables(thd, thd->lock); thd->lock=0; } if (updated) { query_cache_invalidate3(thd, table_list, 1); } delete select; if (error >= 0) Loading Loading @@ -644,6 +644,10 @@ void multi_update::send_error(uint errcode,const char *err) /* If nothing updated return */ if (!updated) return; /* Somthing alredy updated consequently we have to invalidate cache */ query_cache_invalidate3(thd, update_tables, 1); /* Below can happen when thread is killed early ... */ if (!table_being_updated) table_being_updated=update_tables; Loading Loading
sql/sql_delete.cc +7 −4 Original line number Diff line number Diff line Loading @@ -176,15 +176,15 @@ int mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, ORDER *order, } if (using_transactions && ha_autocommit_or_rollback(thd,error >= 0)) error=1; if (deleted) { query_cache_invalidate3(thd, table_list, 1); } if (thd->lock) { mysql_unlock_tables(thd, thd->lock); thd->lock=0; } if (deleted) { query_cache_invalidate3(thd, table_list, 1); } delete select; if (error >= 0) // Fatal error send_error(&thd->net,thd->killed ? ER_SERVER_SHUTDOWN: 0); Loading Loading @@ -357,6 +357,9 @@ void multi_delete::send_error(uint errcode,const char *err) if (!deleted) DBUG_VOID_RETURN; /* Somthing alredy deleted consequently we have to invalidate cache */ query_cache_invalidate3(thd, delete_tables, 1); /* Below can happen when thread is killed early ... */ if (!table_being_deleted) table_being_deleted=delete_tables; Loading
sql/sql_insert.cc +6 −4 Original line number Diff line number Diff line Loading @@ -262,6 +262,8 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, List<Item> &fields, info.copied=values_list.elements; end_delayed_insert(thd); } if (info.copied || info.deleted) query_cache_invalidate3(thd, table_list, 1); } else { Loading Loading @@ -303,6 +305,10 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, List<Item> &fields, } if (using_transactions) error=ha_autocommit_or_rollback(thd,error); if (info.copied || info.deleted) { query_cache_invalidate3(thd, table_list, 1); } if (thd->lock) { mysql_unlock_tables(thd, thd->lock); Loading @@ -310,10 +316,6 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, List<Item> &fields, } } thd->proc_info="end"; if (info.copied || info.deleted) { query_cache_invalidate3(thd, table_list, 1); } table->time_stamp=save_time_stamp; // Restore auto timestamp ptr table->next_number_field=0; thd->count_cuted_fields=0; Loading
sql/sql_parse.cc +3 −4 Original line number Diff line number Diff line Loading @@ -1707,7 +1707,6 @@ mysql_execute_command(void) check_table_access(thd,SELECT_ACL | INSERT_ACL, tables)) goto error; /* purecov: inspected */ res = mysql_repair_table(thd, tables, &lex->check_opt); query_cache_invalidate3(thd, tables, 0); break; } case SQLCOM_CHECK: Loading @@ -1716,7 +1715,6 @@ mysql_execute_command(void) check_table_access(thd, SELECT_ACL | EXTRA_ACL , tables)) goto error; /* purecov: inspected */ res = mysql_check_table(thd, tables, &lex->check_opt); query_cache_invalidate3(thd, tables, 0); break; } case SQLCOM_ANALYZE: Loading Loading @@ -1980,7 +1978,8 @@ mysql_execute_command(void) for (auxi=(TABLE_LIST*) aux_tables ; auxi ; auxi=auxi->next) auxi->table= ((TABLE_LIST*) auxi->table)->table; if (!thd->fatal_error && (result= new multi_delete(thd,aux_tables, lex->lock_option,table_count))) lex->lock_option, table_count))) { res=mysql_select(thd,tables,select_lex->item_list, select_lex->where, Loading
sql/sql_table.cc +4 −0 Original line number Diff line number Diff line Loading @@ -1119,8 +1119,12 @@ static int mysql_admin_table(THD* thd, TABLE_LIST* tables, if (fatal_error) table->table->version=0; // Force close of table else if (open_for_modify) { remove_table_from_cache(thd, table->table->table_cache_key, table->table->real_name); /* May be something modified consequently we have to invalidate cache */ query_cache_invalidate3(thd, table->table, 0); } close_thread_tables(thd); table->table=0; // For query cache if (my_net_write(&thd->net, (char*) packet->ptr(), Loading
sql/sql_update.cc +8 −4 Original line number Diff line number Diff line Loading @@ -318,15 +318,15 @@ int mysql_update(THD *thd, } if (using_transactions && ha_autocommit_or_rollback(thd, error >= 0)) error=1; if (updated) { query_cache_invalidate3(thd, table_list, 1); } if (thd->lock) { mysql_unlock_tables(thd, thd->lock); thd->lock=0; } if (updated) { query_cache_invalidate3(thd, table_list, 1); } delete select; if (error >= 0) Loading Loading @@ -644,6 +644,10 @@ void multi_update::send_error(uint errcode,const char *err) /* If nothing updated return */ if (!updated) return; /* Somthing alredy updated consequently we have to invalidate cache */ query_cache_invalidate3(thd, update_tables, 1); /* Below can happen when thread is killed early ... */ if (!table_being_updated) table_being_updated=update_tables; Loading