mariadb/mysql-test/main/sp-bugs2.test
Sergei Golubchik db3e1edac3 MDEV-36814 MariaDB 10.11.9 Signal 11 crash on second Stored Procedure call
don't reset thd->lex->current_select, it's not a leftover
from previous parsing, it's set in reinit_stmt_before_use()
2025-07-17 09:18:18 +02:00

70 lines
1.9 KiB
Text

#
# MDEV-6610 Assertion `thd->is_error() || thd->killed' failed in mysql_execute_command on executing an SP with repeated CREATE TABLE .. SELECT
#
CREATE TABLE t1 (i INT);
SET @a = 2;
CREATE TABLE IF NOT EXISTS t2 (i INT) ENGINE = MyISAM
AS SELECT * FROM t1;
CREATE TABLE IF NOT EXISTS t2 (i INT) ENGINE = MyISAM
AS SELECT * FROM t1;
DROP TABLE t2;
--delimiter |
CREATE PROCEDURE sp()
BEGIN
REPEAT
CREATE TABLE IF NOT EXISTS t2 (i INT) ENGINE = MyISAM
AS SELECT * FROM t1;
SET @a = @a - 1;
UNTIL @a = 0
END REPEAT ;
END |
--delimiter ;
CALL sp();
DROP PROCEDURE sp;
DROP TABLE t1, t2;
--echo #
--echo # MDEV-36979 Same alias name with different case on same table is not working in functions
--echo #
create table t1 ( id int primary key auto_increment, name varchar(10));
insert into t1 (name) values ('wrbyviwb');
insert into t1 (name) values ('wrbyrwb1');
insert into t1 (name) values ('wrbrwb3');
select cnt.name from t1 cnt join ( select CMT.id from t1 CMT where CMT.id=1) t2 on t2.id=cnt.id;
delimiter //;
create function t1test(val int) returns varchar(400) charset utf8
begin
declare output varchar(400) default '';
set output = (select cnt.name from t1 cnt join ( select CMT.id from t1 CMT where CMT.id=val) t2 on t2.id=cnt.id);
return output;
end//
delimiter ;//
select t1test(1);
drop function t1test;
drop table t1;
--echo #
--echo # MDEV-36814 MariaDB 10.11.9 Signal 11 crash on second Stored Procedure call
--echo #
set names utf8;
create table t1 (a varchar(1000));
--delimiter //
create procedure p1(in p_a varchar(1000)) insert into t1 values (p_a);//
create procedure p2(in s varchar(10))
begin
if s = '1' then set @startDate = now(); end if;
if s = '2' then set @startDate = '2025-05-23'; end if;
call p1(concat(s, @startDate, ' and '));
end;//
--delimiter ;
call p2('1');
call p2('2');
drop table t1;
drop procedure p1;
drop procedure p2;
--echo # End of 10.11 tests