# # Bug#41486 extra character appears in BLOB for every ~40Mb after # mysqldump/import # # This test consumes a significant amount of resources. # Therefore it should be kept separated from other tests. # Otherwise we might suffer from problems like # Bug#43801 mysql.test takes too long, fails due to expired timeout # on debx86-b in PB # -- source include/not_embedded.inc --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings # Have to change the global variable as the session variable is # read-only. SET @old_max_allowed_packet= @@global.max_allowed_packet; # 2 MB blob length + some space for the rest of INSERT query SET @@global.max_allowed_packet = 2 * 1024 * 1024 + 1024; # Create a new connection since the global max_allowed_packet # has no effect for the current connection connect (con1, localhost, root,,); CREATE TABLE t1(data LONGBLOB); INSERT INTO t1 SELECT REPEAT('1', 2*1024*1024); # The following is to remove the race between end of insert and start of MYSQL_DUMP: SELECT COUNT(*) FROM t1; let $outfile= $MYSQLTEST_VARDIR/tmp/bug41486.sql; --error 0,1 remove_file $outfile; --exec $MYSQL_DUMP test t1 > $outfile SET @old_general_log = @@global.general_log; SET @@global.general_log = 0; # Check that the mysql client does not insert extra newlines when loading # strings longer than client's max_allowed_packet --exec $MYSQL --max_allowed_packet=1M test < $outfile 2>&1 SET @@global.general_log = @old_general_log; SELECT LENGTH(data) FROM t1; DROP TABLE t1; # Cleanup disconnect con1; --source include/wait_until_disconnected.inc remove_file $outfile; connection default; SET @@global.max_allowed_packet = @old_max_allowed_packet;