diff options
Diffstat (limited to 'sql/sql_insert.cc')
-rw-r--r-- | sql/sql_insert.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 70cc5f412a1..5c43cacd85b 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -310,6 +310,8 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, List<Item> &fields, } } thd->proc_info="end"; + if (info.copied || info.deleted) + query_cache.invalidate(table_list); table->time_stamp=save_time_stamp; // Restore auto timestamp ptr table->next_number_field=0; thd->count_cuted_fields=0; @@ -1335,6 +1337,8 @@ void select_insert::send_error(uint errcode,const char *err) table->file->extra(HA_EXTRA_NO_CACHE); table->file->activate_all_index(thd); ha_rollback(thd); + if (info.copied || info.deleted) + query_cache.invalidate(table); } @@ -1346,6 +1350,8 @@ bool select_insert::send_eof() table->file->extra(HA_EXTRA_NO_IGNORE_DUP_KEY); if ((error2=ha_autocommit_or_rollback(thd,error)) && ! error) error=error2; + if (info.copied || info.deleted) + query_cache.invalidate(table); if (error) { |