Commit a4477d29 authored by Vicentiu Ciorbaru's avatar Vicentiu Ciorbaru

Fix failing test cases for MDEV-7912 patch

parent a5fa434d
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;
#
# 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;
......@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment