summaryrefslogtreecommitdiff
path: root/mysql-test/suite
diff options
context:
space:
mode:
authorMonty <monty@mariadb.org>2019-10-16 18:40:31 +0300
committerMonty <monty@mariadb.org>2019-10-16 18:40:31 +0300
commit3ce14a66efc69a4ed9903ce121f5b0e9f469b12b (patch)
tree9f276ce95492bd911a38115567a17ab2d7bc368e /mysql-test/suite
parent7952f7720f967b43873e4fac13583984803fae3b (diff)
downloadmariadb-git-3ce14a66efc69a4ed9903ce121f5b0e9f469b12b.tar.gz
Fixed bug in lock tables + alter table with Aria tables.
MDEV-18451 Server crashes in maria_create_trn_for_mysql upon ALTER TABLE Problem was that when table was locked many times, not all instances where removed from the transaction by _ma_remove_table_from_trnman()
Diffstat (limited to 'mysql-test/suite')
-rw-r--r--mysql-test/suite/maria/lock.result21
-rw-r--r--mysql-test/suite/maria/lock.test29
2 files changed, 50 insertions, 0 deletions
diff --git a/mysql-test/suite/maria/lock.result b/mysql-test/suite/maria/lock.result
index a1f533e80fb..381f745b198 100644
--- a/mysql-test/suite/maria/lock.result
+++ b/mysql-test/suite/maria/lock.result
@@ -121,4 +121,25 @@ ALTER TABLE t1 CHANGE b a INT;
ERROR 42S21: Duplicate column name 'a'
UNLOCK TABLES;
DROP TABLE t1, t2;
+#
+# MDEV-10748 Server crashes in ha_maria::implicit_commit upon ALTER TABLE
+#
+CREATE TABLE t1 (a INT) ENGINE=Aria;
+CREATE TABLE t2 (b INT) ENGINE=Aria;
+LOCK TABLES t1 WRITE, t2 AS t2a WRITE, t2 WRITE;
+ALTER TABLE t2 CHANGE b c VARBINARY(30000), ALGORITHM=COPY;
+UNLOCK TABLES;
+DROP TABLE t1, t2;
+# More complex test, from RQG
+CREATE TABLE t1 (a INT) ENGINE=Aria;
+CREATE TABLE t2 (b INT) ENGINE=Aria;
+CREATE OR REPLACE VIEW v2 AS SELECT * FROM t2 ;
+LOCK TABLES t1 WRITE, t2 AS t2a WRITE, v2 WRITE CONCURRENT, t2 WRITE;
+ALTER TABLE t1 FORCE;
+ALTER TABLE t2 CHANGE b c VARBINARY(30000), ALGORITHM=INPLACE;
+ERROR 0A000: ALGORITHM=INPLACE is not supported for this operation. Try ALGORITHM=COPY
+ALTER TABLE t2 CHANGE b c VARBINARY(30000), ALGORITHM=COPY;
+UNLOCK TABLES;
+DROP VIEW v2;
+DROP TABLE t1, t2;
# End of 10.2 tests
diff --git a/mysql-test/suite/maria/lock.test b/mysql-test/suite/maria/lock.test
index 220e3839010..9bac569de50 100644
--- a/mysql-test/suite/maria/lock.test
+++ b/mysql-test/suite/maria/lock.test
@@ -135,4 +135,33 @@ ALTER TABLE t1 CHANGE b a INT;
UNLOCK TABLES;
DROP TABLE t1, t2;
+--echo #
+--echo # MDEV-10748 Server crashes in ha_maria::implicit_commit upon ALTER TABLE
+--echo #
+
+CREATE TABLE t1 (a INT) ENGINE=Aria;
+CREATE TABLE t2 (b INT) ENGINE=Aria;
+
+LOCK TABLES t1 WRITE, t2 AS t2a WRITE, t2 WRITE;
+ALTER TABLE t2 CHANGE b c VARBINARY(30000), ALGORITHM=COPY;
+UNLOCK TABLES;
+DROP TABLE t1, t2;
+
+--echo # More complex test, from RQG
+
+CREATE TABLE t1 (a INT) ENGINE=Aria;
+CREATE TABLE t2 (b INT) ENGINE=Aria;
+CREATE OR REPLACE VIEW v2 AS SELECT * FROM t2 ;
+
+LOCK TABLES t1 WRITE, t2 AS t2a WRITE, v2 WRITE CONCURRENT, t2 WRITE;
+
+ALTER TABLE t1 FORCE;
+--error ER_ALTER_OPERATION_NOT_SUPPORTED
+ALTER TABLE t2 CHANGE b c VARBINARY(30000), ALGORITHM=INPLACE;
+ALTER TABLE t2 CHANGE b c VARBINARY(30000), ALGORITHM=COPY;
+
+UNLOCK TABLES;
+DROP VIEW v2;
+DROP TABLE t1, t2;
+
--echo # End of 10.2 tests