summaryrefslogtreecommitdiffstats
path: root/mysql-test/main/mysql-bug41486.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/main/mysql-bug41486.test')
-rw-r--r--mysql-test/main/mysql-bug41486.test51
1 files changed, 51 insertions, 0 deletions
diff --git a/mysql-test/main/mysql-bug41486.test b/mysql-test/main/mysql-bug41486.test
new file mode 100644
index 00000000..e7b0acc1
--- /dev/null
+++ b/mysql-test/main/mysql-bug41486.test
@@ -0,0 +1,51 @@
+#
+# 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;