diff options
author | Michael Widenius <monty@mariadb.org> | 2018-05-11 14:14:33 +0300 |
---|---|---|
committer | Michael Widenius <monty@mariadb.org> | 2018-05-14 10:08:05 +0300 |
commit | 1cb4caa66d5fd2a9bc095d68988324b7b358d70f (patch) | |
tree | a5efe8d599217eb3b7bcdb75173634d3b0c5bf2e /mysql-test/suite/sql_sequence | |
parent | be6ae0bb6baa8a014c244c8699a34f4ee193338e (diff) | |
download | mariadb-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.result | 5 | ||||
-rw-r--r-- | mysql-test/suite/sql_sequence/lock.test | 13 |
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; |