summaryrefslogtreecommitdiff
path: root/mysql-test/main/temp_table.result
diff options
context:
space:
mode:
authorSergey Vojtovich <svoj@mariadb.org>2018-09-12 16:36:45 +0400
committerSergey Vojtovich <svoj@mariadb.org>2018-10-02 13:42:44 +0400
commitbad2f1569da57c4a81cc84ec2f4a79924df9c8d6 (patch)
tree9ec5b4596b163d275051f7de74736183a6c191c3 /mysql-test/main/temp_table.result
parentb9a5ff364466d2d1495352dd6c932d877923a614 (diff)
downloadmariadb-git-bad2f1569da57c4a81cc84ec2f4a79924df9c8d6.tar.gz
MDEV-17167 - InnoDB: Failing assertion: table->get_ref_count() == 0 uponmariadb-10.3.10
truncating a temporary table TRUNCATE expects only one TABLE instance (which is used by TRUNCATE itself) to be open. However this requirement wasn't enforced after "MDEV-5535: Cannot reopen temporary table". Fixed by closing unused table instances before performing TRUNCATE.
Diffstat (limited to 'mysql-test/main/temp_table.result')
-rw-r--r--mysql-test/main/temp_table.result24
1 files changed, 24 insertions, 0 deletions
diff --git a/mysql-test/main/temp_table.result b/mysql-test/main/temp_table.result
index d1bec4a2af5..5de86e47fb1 100644
--- a/mysql-test/main/temp_table.result
+++ b/mysql-test/main/temp_table.result
@@ -548,3 +548,27 @@ DROP TABLE nonexisting_table, t1;
ERROR 42S02: Unknown table 'temp_db.nonexisting_table'
# Cleanup
DROP DATABASE temp_db;
+USE test;
+#
+# MDEV-17167 - InnoDB: Failing assertion: table->get_ref_count() == 0
+# upon truncating a temporary table
+#
+CREATE TEMPORARY TABLE t1(a INT) ENGINE=InnoDB;
+SELECT * FROM t1 AS t1a1, t1 AS t2a2;
+a a
+TRUNCATE TABLE t1;
+LOCK TABLES t1 WRITE;
+TRUNCATE TABLE t1;
+SELECT * FROM t1;
+a
+UNLOCK TABLES;
+LOCK TABLES t1 AS t1a1 WRITE, t1 AS t1a2 WRITE;
+TRUNCATE TABLE t1;
+SELECT * FROM t1 AS t1a1, t1 AS t1a2;
+a a
+UNLOCK TABLES;
+CREATE TABLE t2(a INT) ENGINE=InnoDB;
+LOCK TABLES t2 WRITE;
+TRUNCATE TABLE t1;
+UNLOCK TABLES;
+DROP TABLE t1, t2;