mariadb/mysql-test/main/sp-bugs2.result
Sergei Golubchik 956920816e MDEV-37710 ASAN errors in find_type2 upon executing a procedure from sys schema
don't reload stored routines in the middle of the execution
of a routine. we don't want different iterations of a loop
to see diffefent definitions

For this: remember Cversion in THD on the first sp cache lookup,
after that only compare versions with this value not with Cversion.
2025-10-28 17:49:51 +01:00

126 lines
2.8 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;
Warnings:
Note 1050 Table 't2' already exists
DROP TABLE t2;
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 |
CALL sp();
Warnings:
Note 1050 Table 't2' already exists
DROP PROCEDURE sp;
DROP TABLE t1, t2;
#
# MDEV-36979 Same alias name with different case on same table is not working in functions
#
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;
name
wrbyviwb
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//
select t1test(1);
t1test(1)
wrbyviwb
drop function t1test;
drop table t1;
#
# MDEV-36814 MariaDB 10.11.9 Signal 11 crash on second Stored Procedure call
#
set names utf8;
create table t1 (a varchar(1000));
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;//
call p2('1');
call p2('2');
drop table t1;
drop procedure p1;
drop procedure p2;
#
# MDEV-26115: Crash when calling stored function in FOR loop argument
#
CREATE OR REPLACE FUNCTION cnt()
RETURNS INTEGER NO SQL
BEGIN
RETURN 3;
END;
$
CREATE OR REPLACE PROCEDURE p1()
NO SQL
BEGIN
DECLARE i INTEGER;
FOR i IN 1..cnt() DO
SELECT 1;
END FOR;
END;
$
CALL p1();
1
1
1
1
1
1
CALL p1();
1
1
1
1
1
1
# Clean up
DROP FUNCTION cnt;
DROP PROCEDURE p1;
#
# MDEV-37710 ASAN errors in find_type2 upon executing a procedure from sys schema
#
create procedure p1()
begin
declare found int;
repeat
set found = exists (select * from information_schema.routines where routine_name='f');
if (sys.ps_is_consumer_enabled('events_waits_history_long') = 'yes') then
select * from mysql.user;
end if;
select release_all_locks();
until found end repeat;
end$$
select get_lock('p1', 300);
get_lock('p1', 300)
1
call p1();
connect con1,localhost,root,,;
select get_lock('p1', 300);
get_lock('p1', 300)
1
create function f() returns int return 1;
connection default;
drop function f;
drop procedure p1;
# End of 10.11 tests