summaryrefslogtreecommitdiff
path: root/sql/sql_handler.cc
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2003-11-20 22:30:48 +0200
committerunknown <monty@mysql.com>2003-11-20 22:30:48 +0200
commit411b610e7169405ba1fbd8d3c8d4d30fb204dd14 (patch)
tree47f72b790e762b88773ac94032106a9fec3ee4a4 /sql/sql_handler.cc
parent671cc0a57491e8084b06a7aa6153f0d05c8ae6ef (diff)
parentcd878c2c8a4a639b2a7147ecf00ce791e15faa42 (diff)
downloadmariadb-git-411b610e7169405ba1fbd8d3c8d4d30fb204dd14.tar.gz
Merge with 4.0 to get:
Fix for storing negative values in decimal fields Fix for FLUSH TABLE with HANDLER BitKeeper/etc/ignore: auto-union libmysql_r/Makefile.am: Auto merged myisam/mi_check.c: Auto merged mysql-test/r/bigint.result: Auto merged mysql-test/r/user_var.result: Auto merged mysql-test/t/bigint.test: Auto merged mysql-test/t/user_var.test: Auto merged mysql-test/r/rpl_loaddata.result: Merge with 4.0 sql/item.cc: Merge with 4.0 to get fix for storing negative values in decimal fields sql/item.h: Merge with 4.0 to get fix for storing negative values in decimal fields sql/sql_handler.cc: Merge with 4.0 to get fix for FLUSH TABLE with HANDLER sql/sql_repl.cc: Merge with 4.0 sql/sql_select.cc: Used original file. (Comments moved to sql/sql_select.h)
Diffstat (limited to 'sql/sql_handler.cc')
-rw-r--r--sql/sql_handler.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/sql/sql_handler.cc b/sql/sql_handler.cc
index 88fedaad380..405cfdb5bdc 100644
--- a/sql/sql_handler.cc
+++ b/sql/sql_handler.cc
@@ -297,7 +297,20 @@ static TABLE **find_table_ptr_by_name(THD *thd, const char *db,
!my_strcasecmp(system_charset_info,
(is_alias ? table->table_name : table->real_name),
table_name))
+ {
+ if (table->version != refresh_version)
+ {
+ VOID(pthread_mutex_lock(&LOCK_open));
+ if (close_thread_table(thd, ptr))
+ {
+ /* Tell threads waiting for refresh that something has happened */
+ VOID(pthread_cond_broadcast(&COND_refresh));
+ }
+ VOID(pthread_mutex_unlock(&LOCK_open));
+ continue;
+ }
break;
+ }
ptr= &(table->next);
}
return ptr;