summaryrefslogtreecommitdiff
path: root/sql/sql_table.cc
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2002-04-29 00:33:52 +0300
committerunknown <bell@sanja.is.com.ua>2002-04-29 00:33:52 +0300
commit3c0e609165197d03d067fed2157673ae42652f26 (patch)
treef74bb7c0172682417236403294a4f2b39e49af7f /sql/sql_table.cc
parenta2ce6c71b836c627e71fe37f0aa312b11e59f571 (diff)
downloadmariadb-git-3c0e609165197d03d067fed2157673ae42652f26.tar.gz
invalidation moved before tables unlocking
sql/sql_delete.cc: invalidation moved before tables unlocking invalidation on multidelete error (if something changed) sql/sql_parse.cc: invalidation moved to mysql_admin_table layout fixing sql/sql_table.cc: invalidation moved to mysql_admin_table sql/sql_update.cc: invalidation moved before tables unlocking invalidation on multiupdate error (if something changed)
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r--sql/sql_table.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index dcbfd709f97..4a782d396c2 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -1120,8 +1120,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(),