create function bug10100f(prm int) returns int
begin if prm > 1 then return prm * bug10100f(prm - 1);
end if; return1;
end| set statement sql_mode = '' for
create procedure bug10100p(prm int, inout res int)
begin set res = res * prm; if prm > 1 then
call bug10100p(prm - 1, res);
end if;
end| set statement sql_mode = '' for
create procedure bug10100t(prm int)
begin
declare res int; set res = 1;
call bug10100p(prm, res);
select res;
end|
create table t3 (a int)|
insert into t3 values (0)|
create view v1 as select a from t3|
create procedure bug10100pt(level int, lim int)
begin if level < lim then
update t3 set a=level;
FLUSH TABLES;
call bug10100pt(level+1, lim);
else
select * from t3;
end if;
end|
create procedure bug10100pv(level int, lim int)
begin if level < lim then
update v1 set a=level;
FLUSH TABLES;
call bug10100pv(level+1, lim);
else
select * from v1;
end if;
end|
prepare stmt2 from "select * from t3;";
create procedure bug10100pd(level int, lim int)
begin if level < lim then
select level;
prepare stmt1 from "update t3 set a=a+2";
execute stmt1;
FLUSH TABLES;
execute stmt1;
FLUSH TABLES;
execute stmt1;
FLUSH TABLES;
deallocate prepare stmt1;
execute stmt2;
select * from t3;
call bug10100pd(level+1, lim);
else
execute stmt2;
end if;
end|
create procedure bug10100pc(level int, lim int)
begin
declare lv int;
declare c cursor for select a from t3;
open c; if level < lim then
select level;
fetch c into lv;
select lv;
update t3 set a=level+lv;
FLUSH TABLES;
call bug10100pc(level+1, lim);
else
select * from t3;
end if;
close c;
end| set @@max_sp_recursion_depth=255| set @var=1|
call bug10100p(255, @var)|
call bug10100pt(1,255)|
call bug10100pv(1,255)|
call bug10100pd(1,255)|
call bug10100pc(1,255)| set @@max_sp_recursion_depth=0|
deallocate prepare stmt2|
drop function bug10100f|
drop procedure bug10100p|
drop procedure bug10100t|
drop procedure bug10100pt|
drop procedure bug10100pv|
drop procedure bug10100pd|
drop procedure bug10100pc|
drop view v1|
drop table t3|
#
# MDEV-40409 ST_GeomFromText stack overrun on deeply nested GeometryCollection
#
SELECT ST_GeomFromText(CONCAT(REPEAT('GEOMETRYCOLLECTION(',5000),'POINT(1 1)',REPEAT(')',5000)));
#
# MDEV-40540 ST_GeomFromWKB stack overrun on deeply nested GeometryCollection
# set @a=concat(0x0107000000, repeat(0x010000000107000000, 120000), 0x00000000);
SELECT ST_GeomFromWKB(@a);
#
# MDEV-39750 ExtractValue does not control recursion depth.
#
SELECT ExtractValue('<a/>', REPEAT('(', 100000)); ERROR HY000: Thread stack overrun: 'used bytes' used of a 'available' byte stack, and'X' bytes needed. Consider increasing the thread_stack system variable.
SELECT ExtractValue('<a/>', REPEAT('/n', 100000)); ERROR HY000: Thread stack overrun: 'used bytes' used of a 'available' byte stack, and'X' bytes needed. Consider increasing the thread_stack system variable.
# End of 10.6 tests
#
# MDEV-39813 ST_GeomFromGeoJSON does not control recursion depth
# set @len = 3000;
SELECT ST_GeomFromGeoJSON(
concat(
repeat('{"type":"GeometryCollection", "geometries":[', @len), '{"type":"Point","coordinates":[0,0]}',
repeat(']}', @len)
)) as exp;
# End of 12.3 tests
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.21 Sekunden
(vorverarbeitet am 2026-10-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.