mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/opt/local/work/mysql-5.0-14210
This commit is contained in:
@ -3575,4 +3575,46 @@ DROP VIEW bug13095_v1
|
||||
DROP PROCEDURE IF EXISTS bug13095;
|
||||
DROP VIEW IF EXISTS bug13095_v1;
|
||||
DROP TABLE IF EXISTS bug13095_t1;
|
||||
drop procedure if exists bug14210|
|
||||
set @@session.max_heap_table_size=16384|
|
||||
select @@session.max_heap_table_size|
|
||||
@@session.max_heap_table_size
|
||||
16384
|
||||
create table t3 (a char(255)) engine=InnoDB|
|
||||
create procedure bug14210_fill_table()
|
||||
begin
|
||||
declare table_size, max_table_size int default 0;
|
||||
select @@session.max_heap_table_size into max_table_size;
|
||||
delete from t3;
|
||||
insert into t3 (a) values (repeat('a', 255));
|
||||
repeat
|
||||
insert into t3 select a from t3;
|
||||
select count(*)*255 from t3 into table_size;
|
||||
until table_size > max_table_size*2 end repeat;
|
||||
end|
|
||||
call bug14210_fill_table()|
|
||||
drop procedure bug14210_fill_table|
|
||||
create table t4 like t3|
|
||||
create procedure bug14210()
|
||||
begin
|
||||
declare a char(255);
|
||||
declare done int default 0;
|
||||
declare c cursor for select * from t3;
|
||||
declare continue handler for sqlstate '02000' set done = 1;
|
||||
open c;
|
||||
repeat
|
||||
fetch c into a;
|
||||
if not done then
|
||||
insert into t4 values (upper(a));
|
||||
end if;
|
||||
until done end repeat;
|
||||
close c;
|
||||
end|
|
||||
call bug14210()|
|
||||
select count(*) from t4|
|
||||
count(*)
|
||||
256
|
||||
drop table t3, t4|
|
||||
drop procedure bug14210|
|
||||
set @@session.max_heap_table_size=default|
|
||||
drop table t1,t2;
|
||||
|
@ -4488,6 +4488,58 @@ DROP TABLE IF EXISTS bug13095_t1;
|
||||
|
||||
delimiter |;
|
||||
|
||||
#
|
||||
# BUG#14210: "Simple query with > operator on large table gives server
|
||||
# crash"
|
||||
# Check that cursors work in case when HEAP tables are converted to
|
||||
# MyISAM
|
||||
#
|
||||
--disable_warnings
|
||||
drop procedure if exists bug14210|
|
||||
--enable_warnings
|
||||
set @@session.max_heap_table_size=16384|
|
||||
select @@session.max_heap_table_size|
|
||||
# To trigger the memory corruption the original table must be InnoDB.
|
||||
# No harm if it's not, so don't warn if the suite is run with --skip-innodb
|
||||
--disable_warnings
|
||||
create table t3 (a char(255)) engine=InnoDB|
|
||||
--enable_warnings
|
||||
create procedure bug14210_fill_table()
|
||||
begin
|
||||
declare table_size, max_table_size int default 0;
|
||||
select @@session.max_heap_table_size into max_table_size;
|
||||
delete from t3;
|
||||
insert into t3 (a) values (repeat('a', 255));
|
||||
repeat
|
||||
insert into t3 select a from t3;
|
||||
select count(*)*255 from t3 into table_size;
|
||||
until table_size > max_table_size*2 end repeat;
|
||||
end|
|
||||
call bug14210_fill_table()|
|
||||
drop procedure bug14210_fill_table|
|
||||
create table t4 like t3|
|
||||
|
||||
create procedure bug14210()
|
||||
begin
|
||||
declare a char(255);
|
||||
declare done int default 0;
|
||||
declare c cursor for select * from t3;
|
||||
declare continue handler for sqlstate '02000' set done = 1;
|
||||
open c;
|
||||
repeat
|
||||
fetch c into a;
|
||||
if not done then
|
||||
insert into t4 values (upper(a));
|
||||
end if;
|
||||
until done end repeat;
|
||||
close c;
|
||||
end|
|
||||
call bug14210()|
|
||||
select count(*) from t4|
|
||||
|
||||
drop table t3, t4|
|
||||
drop procedure bug14210|
|
||||
set @@session.max_heap_table_size=default|
|
||||
|
||||
#
|
||||
# BUG#NNNN: New bug synopsis
|
||||
|
Reference in New Issue
Block a user