summaryrefslogtreecommitdiff
path: root/sql/sql_base.cc
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2004-02-03 09:46:48 +0100
committerunknown <monty@mysql.com>2004-02-03 09:46:48 +0100
commitdccf911f3786cbc43492d364168661a4c95ffe84 (patch)
tree4e99682a8907f92bf23d26f574c2c1d6a1152c1d /sql/sql_base.cc
parent6a76cd2ac6b42b3ee87e687ea041c99950726cc6 (diff)
downloadmariadb-git-dccf911f3786cbc43492d364168661a4c95ffe84.tar.gz
Give error if locked table is used twice in query. This fixes strange error message when doing LOCK TABLES t1 WRITE; INSERT TABLE t1 SELECT * from t1 (Bug #2296)
client/mysqldump.c: Better help for flush-logs mysql-test/r/lock.result: Test for LOCK TABLES ; INSERT ... SELECT mysql-test/t/lock.test: Test for LOCK TABLES ; INSERT ... SELECT
Diffstat (limited to 'sql/sql_base.cc')
-rw-r--r--sql/sql_base.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index 40153ad847e..efb008f4a6e 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -824,8 +824,12 @@ TABLE *open_table(THD *thd,const char *db,const char *table_name,
{
if (table->key_length == key_length &&
!memcmp(table->table_cache_key,key,key_length) &&
- !my_strcasecmp(table->table_name,alias))
+ !my_strcasecmp(table->table_name,alias) &&
+ table->query_id != thd->query_id)
+ {
+ table->query_id=thd->query_id;
goto reset;
+ }
}
my_printf_error(ER_TABLE_NOT_LOCKED,ER(ER_TABLE_NOT_LOCKED),MYF(0),alias);
DBUG_RETURN(0);