summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/derived.result41
-rw-r--r--mysql-test/t/derived.test29
2 files changed, 70 insertions, 0 deletions
diff --git a/mysql-test/r/derived.result b/mysql-test/r/derived.result
index 2106ba504a9..018aa0acabf 100644
--- a/mysql-test/r/derived.result
+++ b/mysql-test/r/derived.result
@@ -1204,5 +1204,46 @@ REPLACE INTO v2 ( SELECT * FROM v4 ) UNION ( SELECT f FROM v2 );
drop view v1,v2,v3,v4;
drop table t1,t2,t3;
#
+# MDEV-42383 SIGSEGV in heap_info from make_join_statistics on 2nd SP exec.
+#
+CREATE TABLE t1 (name varchar(100));
+insert into t1 values ("one"), ("two"), ("threee");
+CREATE PROCEDURE p() SELECT * FROM (SELECT 1 FROM t1) AS a;
+SET SESSION optimizer_switch="derived_merge=OFF";
+CALL p();
+1
+1
+1
+1
+SET SESSION optimizer_switch="derived_merge=ON";
+CALL p();
+1
+1
+1
+1
+drop procedure p;
+SET GLOBAL optimizer_switch="derived_merge=OFF";
+connect con1,localhost,root,,;
+connection con1;
+CREATE PROCEDURE p() SELECT * FROM (SELECT 1 FROM t1) AS a;
+CALL p();
+1
+1
+1
+1
+connection default;
+SET GLOBAL optimizer_switch="derived_merge=ON";
+connection con1;
+CALL p();
+1
+1
+1
+1
+drop procedure p;
+connection default;
+disconnect con1;
+drop table t1;
+set optimizer_switch=@save_derived_optimizer_switch;
+#
# End of 10.2 tests
#
diff --git a/mysql-test/t/derived.test b/mysql-test/t/derived.test
index 6d9d5e23cf9..a5fc3e0f93f 100644
--- a/mysql-test/t/derived.test
+++ b/mysql-test/t/derived.test
@@ -1037,5 +1037,34 @@ drop view v1,v2,v3,v4;
drop table t1,t2,t3;
--echo #
+--echo # MDEV-42383 SIGSEGV in heap_info from make_join_statistics on 2nd SP exec.
+--echo #
+CREATE TABLE t1 (name varchar(100));
+insert into t1 values ("one"), ("two"), ("threee");
+CREATE PROCEDURE p() SELECT * FROM (SELECT 1 FROM t1) AS a;
+SET SESSION optimizer_switch="derived_merge=OFF";
+CALL p();
+SET SESSION optimizer_switch="derived_merge=ON";
+CALL p();
+drop procedure p;
+
+SET GLOBAL optimizer_switch="derived_merge=OFF";
+connect (con1,localhost,root,,);
+connection con1;
+CREATE PROCEDURE p() SELECT * FROM (SELECT 1 FROM t1) AS a;
+CALL p();
+
+connection default;
+SET GLOBAL optimizer_switch="derived_merge=ON";
+connection con1;
+CALL p();
+drop procedure p;
+connection default;
+disconnect con1;
+
+drop table t1;
+set optimizer_switch=@save_derived_optimizer_switch;
+
+--echo #
--echo # End of 10.2 tests
--echo #