diff options
-rw-r--r-- | mysql-test/r/temp_table.result | 8 | ||||
-rw-r--r-- | mysql-test/t/temp_table.test | 9 | ||||
-rw-r--r-- | sql/sql_table.cc | 1 |
3 files changed, 18 insertions, 0 deletions
diff --git a/mysql-test/r/temp_table.result b/mysql-test/r/temp_table.result index 81358db0dd6..b833f4f9768 100644 --- a/mysql-test/r/temp_table.result +++ b/mysql-test/r/temp_table.result @@ -538,5 +538,13 @@ UNLOCK TABLES; ALTER TABLE t1 RENAME t2, LOCK SHARED; ALTER TABLE t2 RENAME t1, LOCK EXCLUSIVE; DROP TABLE t1; +# +# MDEV-10792: Assertion `thd->mdl_context.is_lock_owner +# (MDL_key::TABLE, table->db, table->table_name, MDL_SHARED)' +# failed in mysql_rm_table_no_locks +# +CREATE TEMPORARY TABLE t1 (i INT); +DROP TABLE nonexisting_table, t1; +ERROR 42S02: Unknown table 'temp_db.nonexisting_table' # Cleanup DROP DATABASE temp_db; diff --git a/mysql-test/t/temp_table.test b/mysql-test/t/temp_table.test index 7ba4de34ea9..fb44362b537 100644 --- a/mysql-test/t/temp_table.test +++ b/mysql-test/t/temp_table.test @@ -583,6 +583,15 @@ ALTER TABLE t2 RENAME t1, LOCK EXCLUSIVE; DROP TABLE t1; +--echo # +--echo # MDEV-10792: Assertion `thd->mdl_context.is_lock_owner +--echo # (MDL_key::TABLE, table->db, table->table_name, MDL_SHARED)' +--echo # failed in mysql_rm_table_no_locks +--echo # +CREATE TEMPORARY TABLE t1 (i INT); +--error ER_BAD_TABLE_ERROR +DROP TABLE nonexisting_table, t1; + --echo # Cleanup DROP DATABASE temp_db; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 38b45a7a2c9..d112d29d10a 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -2299,6 +2299,7 @@ int mysql_rm_table_no_locks(THD *thd, TABLE_LIST *tables, bool if_exists, error= 1; goto err; } + error= 0; table->table= 0; } |