Commit 7801f290 authored by aelkin/elkin@koti.dsl.inet.fi's avatar aelkin/elkin@koti.dsl.inet.fi
Browse files

Merge aelkin@bk-internal.mysql.com:/home/bk/mysql-5.0-rpl

into  koti.dsl.inet.fi:/home/elkin/MySQL/TEAM/FIXES/5.0/bug33435-load_data_read_buffer_size
parents 36248516 0ca3250e
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -530,6 +530,12 @@ typedef int (*qsort2_cmp)(const void *, const void *, const void *);
#define my_b_tell(info) ((info)->pos_in_file + \
			 (uint) (*(info)->current_pos - (info)->request_pos))

#define my_b_get_buffer_start(info) (info)->request_pos 
#define my_b_get_bytes_in_buffer(info) (char*) (info)->read_end -   \
  (char*) my_b_get_buffer_start(info)
#define my_b_get_pos_in_file(info) (info)->pos_in_file


/* tell write offset in the SEQ_APPEND cache */
my_off_t my_b_append_tell(IO_CACHE* info);
my_off_t my_b_safe_tell(IO_CACHE* info); /* picks the correct tell() */
+31 −0
Original line number Diff line number Diff line
stop slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
create table t2 (id int not null primary key auto_increment);
show variables like 'max_allowed_packet' /* 8K */;
Variable_name	Value
max_allowed_packet	7168
show variables like 'read_buffer_size'   /* 9K */;
Variable_name	Value
read_buffer_size	8228
load data infile '/home/elkin/MySQL/TEAM/FIXES/5.0/bug33435-load_data_read_buffer_size/mysql-test/var/tmp/bug30435_5k.txt' into table t2;
select count(*) from t2 /* 5 000 */;
count(*)
5000
show binlog events in 'master-bin.000002' from 98;
Log_name	Pos	Event_type	Server_id	End_log_pos	Info
master-bin.000002	98	Query	1	#	use `test`; create table t2 (id int not null primary key auto_increment)
master-bin.000002	221	Begin_load_query	1	#	;file_id=1;block_len=7168
master-bin.000002	7412	Append_block	1	#	;file_id=1;block_len=7168
master-bin.000002	14603	Append_block	1	#	;file_id=1;block_len=2048
master-bin.000002	16674	Append_block	1	#	;file_id=1;block_len=7168
master-bin.000002	23865	Append_block	1	#	;file_id=1;block_len=341
master-bin.000002	24229	Execute_load_query	1	#	use `test`; load data infile '/home/elkin/MySQL/TEAM/FIXES/5.0/bug33435-load_data_read_buffer_size/mysql-test/var/tmp/bug30435_5k.txt' into table t2 ;file_id=1
select count(*) from t2 /* 5 000 */;
count(*)
5000
drop table t1, t2;
end of the tests
+1 −0
Original line number Diff line number Diff line
--read_buffer_size=9K --max_allowed_packet=8K
+1 −0
Original line number Diff line number Diff line
--max_allowed_packet=8K
+51 −0
Original line number Diff line number Diff line
#
#  check replication of load data with the server parameters subjected to
#  read_buffer_size > max_allowed_packet
#
#  BUG#30435 loading large LOAD DATA INFILE breaks slave with 
#            read_buffer_size set on master
#  BUG#33413 show binlog events fails if binlog has event size of close
#            to max_allowed_packet

source include/master-slave.inc;
source include/have_innodb.inc;

--disable_query_log
let $rows= 5000;
create table t1 (id int not null primary key auto_increment);

while($rows)
{
  eval insert into t1 values (null);
  dec $rows;
}
eval select * into outfile '$MYSQLTEST_VARDIR/tmp/bug30435_5k.txt' from t1;
flush logs;
--enable_query_log

connection master;
create table t2 (id int not null primary key auto_increment);

show variables like 'max_allowed_packet' /* 8K */;
show variables like 'read_buffer_size'   /* 9K */;

eval load data infile '$MYSQLTEST_VARDIR/tmp/bug30435_5k.txt' into table t2;
select count(*) from t2 /* 5 000 */;

# the binglog will show fragmented Append_block events
--let $binlog_start=98
--replace_column 5 #
--replace_regex /\/\* xid=.* \*\//\/* XID *\//
--eval show binlog events in 'master-bin.000002' from $binlog_start


sync_slave_with_master;
#connection slave;
select count(*) from t2 /* 5 000 */;

connection master;
drop table t1, t2;
sync_slave_with_master;
remove_file $MYSQLTEST_VARDIR/tmp/bug30435_5k.txt;

--echo end of the tests
Loading