summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVarun Gupta <varun.gupta@mariadb.com>2020-06-22 19:48:46 +0530
committerVarun Gupta <varun.gupta@mariadb.com>2020-06-22 20:23:43 +0530
commit545a6194e827ace9d2d560d89dcde735676abbdb (patch)
tree03f5cfa22a8404e4c9a296adc8b8ff243fc117e0
parent9160e4aa95cd3c40ea0733d632692526049ed12b (diff)
downloadmariadb-git-545a6194e827ace9d2d560d89dcde735676abbdb.tar.gz
MDEV-22187: SIGSEGV in ha_innobase::cmp_ref on DELETE
Added a new test file for tests with delete using INNODB.
-rw-r--r--mysql-test/main/delete_innodb.result26
-rw-r--r--mysql-test/main/delete_innodb.test22
2 files changed, 48 insertions, 0 deletions
diff --git a/mysql-test/main/delete_innodb.result b/mysql-test/main/delete_innodb.result
new file mode 100644
index 00000000000..e82d162cce8
--- /dev/null
+++ b/mysql-test/main/delete_innodb.result
@@ -0,0 +1,26 @@
+# Tests for delete with INNODB
+#
+# MDEV-22187: SIGSEGV in ha_innobase::cmp_ref on DELETE
+#
+SET @save_sort_buffer_size= @@sort_buffer_size;
+SET sort_buffer_size=1024;
+CREATE TABLE t1(c1 CHAR(255) PRIMARY KEY) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (0), ('a'), ('b');
+ANALYZE TABLE T1 PERSISTENT FOR ALL;
+Table Op Msg_type Msg_text
+test.t1 analyze status Engine-independent statistics collected
+test.t1 analyze status OK
+SELECT * FROM t1;
+c1
+0
+a
+b
+EXPLAIN DELETE b FROM t1 AS a JOIN t1 AS b;
+id select_type table type possible_keys key key_len ref rows Extra
+1 SIMPLE a index NULL PRIMARY 255 NULL 3 Using index
+1 SIMPLE b ALL NULL NULL NULL NULL 3
+DELETE b FROM t1 AS a JOIN t1 AS b;
+SELECT * FROM t1;
+c1
+SET sort_buffer_size=@save_sort_buffer_size;
+DROP TABLE t1;
diff --git a/mysql-test/main/delete_innodb.test b/mysql-test/main/delete_innodb.test
new file mode 100644
index 00000000000..17a4e4d98f3
--- /dev/null
+++ b/mysql-test/main/delete_innodb.test
@@ -0,0 +1,22 @@
+--source include/have_innodb.inc
+--source include/have_sequence.inc
+
+--echo # Tests for delete with INNODB
+
+--echo #
+--echo # MDEV-22187: SIGSEGV in ha_innobase::cmp_ref on DELETE
+--echo #
+
+SET @save_sort_buffer_size= @@sort_buffer_size;
+SET sort_buffer_size=1024;
+CREATE TABLE t1(c1 CHAR(255) PRIMARY KEY) ENGINE=InnoDB;
+
+INSERT INTO t1 VALUES (0), ('a'), ('b');
+ANALYZE TABLE T1 PERSISTENT FOR ALL;
+SELECT * FROM t1;
+EXPLAIN DELETE b FROM t1 AS a JOIN t1 AS b;
+DELETE b FROM t1 AS a JOIN t1 AS b;
+SELECT * FROM t1;
+
+SET sort_buffer_size=@save_sort_buffer_size;
+DROP TABLE t1;