summaryrefslogtreecommitdiff
path: root/mysql-test/suite/sql_sequence
diff options
context:
space:
mode:
authorMichael Widenius <monty@mariadb.org>2018-05-11 14:14:33 +0300
committerMichael Widenius <monty@mariadb.org>2018-05-14 10:08:05 +0300
commit1cb4caa66d5fd2a9bc095d68988324b7b358d70f (patch)
treea5efe8d599217eb3b7bcdb75173634d3b0c5bf2e /mysql-test/suite/sql_sequence
parentbe6ae0bb6baa8a014c244c8699a34f4ee193338e (diff)
downloadmariadb-git-1cb4caa66d5fd2a9bc095d68988324b7b358d70f.tar.gz
MDEV-15970 Crash when doing truncate on locked sequence
Problem was that we used table->s->db_type() for accessing handlerton of opened file instead of table->file->ht Other bug fixed: - Ensure that we set error if reopen_tables() fails (This was the cause of assert)
Diffstat (limited to 'mysql-test/suite/sql_sequence')
-rw-r--r--mysql-test/suite/sql_sequence/lock.result5
-rw-r--r--mysql-test/suite/sql_sequence/lock.test13
2 files changed, 17 insertions, 1 deletions
diff --git a/mysql-test/suite/sql_sequence/lock.result b/mysql-test/suite/sql_sequence/lock.result
index 92c75ff8188..e92bdbffcf9 100644
--- a/mysql-test/suite/sql_sequence/lock.result
+++ b/mysql-test/suite/sql_sequence/lock.result
@@ -32,3 +32,8 @@ CREATE SEQUENCE seq2;
LOCK TABLE seq1 WRITE, seq2 WRITE;
INSERT INTO seq1 VALUES (1, 1, 100000, 1, 1, 100, 1, 1);
DROP SEQUENCE seq1, seq2;
+CREATE OR REPLACE SEQUENCE s1 ENGINE=MyISAM;
+LOCK TABLE s1 WRITE;
+TRUNCATE TABLE s1;
+ERROR HY000: Storage engine SEQUENCE of the table `test`.`s1` doesn't have this option
+DROP SEQUENCE s1;
diff --git a/mysql-test/suite/sql_sequence/lock.test b/mysql-test/suite/sql_sequence/lock.test
index 730404abf38..1cb6aa6fb54 100644
--- a/mysql-test/suite/sql_sequence/lock.test
+++ b/mysql-test/suite/sql_sequence/lock.test
@@ -39,7 +39,6 @@ DROP SEQUENCE s1;
unlock tables;
DROP SEQUENCE s1;
-
#
# MDEV-15106 Unexpected ER_WRONG_INSERT_INTO_SEQUENCE upon INSERT with
# multiple locks on sequences
@@ -51,3 +50,15 @@ LOCK TABLE seq1 WRITE, seq2 WRITE;
INSERT INTO seq1 VALUES (1, 1, 100000, 1, 1, 100, 1, 1);
DROP SEQUENCE seq1, seq2;
+#
+# MDEV-15970
+# Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())' failure and/or
+# ER_KEY_NOT_FOUND upon TRUNCATE sequence under lock
+#
+
+CREATE OR REPLACE SEQUENCE s1 ENGINE=MyISAM;
+LOCK TABLE s1 WRITE;
+--error ER_ILLEGAL_HA
+TRUNCATE TABLE s1;
+# Cleanup
+DROP SEQUENCE s1;