Fix failing test cases for MDEV-7912 patch
This commit is contained in:
parent
a5fa434d0c
commit
a4477d2977
@ -1,18 +1,11 @@
|
||||
call mtr.add_suppression("Out of memory");
|
||||
set sql_mode="";
|
||||
drop table if exists t1,t2;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 't1'
|
||||
Note 1051 Unknown table 't2'
|
||||
create table `t1` (`a` datetime not null) engine=InnoDB;
|
||||
create table `t2` (`a` int not null) engine=innodb;
|
||||
replace into t1 values (),();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
insert into t2 values(0);
|
||||
set session sort_buffer_size = 1024*1024*1024*1024;
|
||||
SET session debug_dbug= '+d,make_merge_buff_alloc_fail';
|
||||
delete d2 from t2 as d1, t1 as d2 where d1.a <=> d2.a;
|
||||
ERROR HY000: Out of memory (Needed 2 bytes)
|
||||
SET SESSION debug_dbug=DEFAULT;
|
||||
drop table t2;
|
||||
drop table t1;
|
||||
|
@ -1,18 +1,26 @@
|
||||
#
|
||||
# MDEV-7912
|
||||
#
|
||||
# multitable delete with wrongly set sort_buffer_size crashes in merge_buffers
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/windows.inc
|
||||
|
||||
call mtr.add_suppression("Out of memory");
|
||||
|
||||
set sql_mode="";
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2;
|
||||
create table `t1` (`a` datetime not null) engine=InnoDB;
|
||||
create table `t2` (`a` int not null) engine=innodb;
|
||||
|
||||
replace into t1 values (),();
|
||||
insert into t2 values(0);
|
||||
set session sort_buffer_size = 1024*1024*1024*1024;
|
||||
SET session debug_dbug= '+d,make_merge_buff_alloc_fail';
|
||||
--error 5 #EE_OUTOFMEMORY
|
||||
#Either fail with EE_OUTOFMEMORY, or succeed
|
||||
--error 0 , 5
|
||||
delete d2 from t2 as d1, t1 as d2 where d1.a <=> d2.a;
|
||||
SET SESSION debug_dbug=DEFAULT;
|
||||
--enable_warnings
|
||||
|
||||
drop table t2;
|
||||
drop table t1;
|
||||
drop table t1;
|
||||
|
@ -608,8 +608,6 @@ bool Unique::walk(TABLE *table, tree_walk_action action, void *walk_action_arg)
|
||||
if (flush_io_cache(&file) || reinit_io_cache(&file, READ_CACHE, 0L, 0, 0))
|
||||
return 1;
|
||||
size_t buff_sz= (max_in_memory_size / full_size + 1) * full_size;
|
||||
DBUG_EXECUTE_IF("make_merge_buff_alloc_fail",
|
||||
DBUG_SET("+d,simulate_out_of_memory"););
|
||||
if (!(merge_buffer = (uchar *)my_malloc(buff_sz, MYF(MY_WME))))
|
||||
return 1;
|
||||
if (buff_sz < (ulong) (full_size * (file_ptrs.elements + 1)))
|
||||
@ -739,8 +737,6 @@ bool Unique::get(TABLE *table)
|
||||
/* Not enough memory; Save the result to file && free memory used by tree */
|
||||
if (flush())
|
||||
return 1;
|
||||
DBUG_EXECUTE_IF("make_merge_buff_alloc_fail",
|
||||
DBUG_SET("+d,simulate_out_of_memory"););
|
||||
size_t buff_sz= (max_in_memory_size / full_size + 1) * full_size;
|
||||
if (!(sort_buffer= (uchar*) my_malloc(buff_sz, MYF(MY_WME))))
|
||||
return 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user