summaryrefslogtreecommitdiff
path: root/mysql-test/t/sp-innodb.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/t/sp-innodb.test')
-rw-r--r--mysql-test/t/sp-innodb.test45
1 files changed, 45 insertions, 0 deletions
diff --git a/mysql-test/t/sp-innodb.test b/mysql-test/t/sp-innodb.test
new file mode 100644
index 00000000000..228ab42544d
--- /dev/null
+++ b/mysql-test/t/sp-innodb.test
@@ -0,0 +1,45 @@
+
+--source include/have_innodb.inc
+
+--disable_warnings
+drop table if exists t1,t2;
+drop procedure if exists p1;
+--enable_warnings
+
+--echo #
+--echo #MDEV-6985: MariaDB crashes on stored procedure call
+--echo #
+CREATE TABLE `t1` (
+ `ID` int(11) NOT NULL,
+ PRIMARY KEY (`ID`)
+) ENGINE=InnoDB;
+
+CREATE TABLE `t2` (
+ `ID` int(11) NOT NULL,
+ `DATE` datetime DEFAULT NULL,
+ PRIMARY KEY (`ID`)
+) ENGINE=InnoDB;
+
+--delimiter ;;
+
+CREATE PROCEDURE `p1`()
+BEGIN
+ DECLARE _mySelect CURSOR FOR
+ SELECT DISTINCT t1.ID
+ FROM t1
+ LEFT JOIN t2 AS t2 ON
+ t2.ID = t1.ID
+ AND t2.DATE = (
+ SELECT MAX(T3.DATE) FROM t2 AS T3 WHERE T3.ID = t2.ID AND T3.DATE<=NOW()
+ )
+ WHERE t1.ID = 1;
+ OPEN _mySelect;
+ CLOSE _mySelect;
+END ;;
+--delimiter ;
+
+CALL p1();
+CALL p1();
+
+drop procedure p1;
+drop table t1,t2;