mirror of
https://github.com/MariaDB/server.git
synced 2025-02-02 03:51:50 +01:00
29f0dcb563
* Finished Monty and Jani's merge * Some InnoDB tests still fail (because it's old xtradb code run against newer testsuite). They are expected to go after mergning with the latest xtradb.
108 lines
2.6 KiB
Text
108 lines
2.6 KiB
Text
#
|
|
# We need big packets.
|
|
#
|
|
SET @old_global_max_allowed_packet=@@global.max_allowed_packet;
|
|
SET @@global.max_allowed_packet= 1024*1024*1024;
|
|
#
|
|
# Preparatory cleanup.
|
|
#
|
|
DROP TABLE IF EXISTS t1;
|
|
#
|
|
# We need a fixed timestamp to avoid varying results.
|
|
#
|
|
SET timestamp=1000000000;
|
|
#
|
|
# We need big packets.
|
|
#
|
|
# Capture initial value to reset at the end of the test
|
|
# Now adjust max_allowed_packet
|
|
SET @@global.max_allowed_packet= 1024*1024*1024;
|
|
max_allowed_packet is a global variable.
|
|
In order for the preceding change in max_allowed_packets' value
|
|
to be seen and used, we must start a new connection.
|
|
The change does not take effect with the current one.
|
|
For simplicity, we just disconnect / reconnect connection default here.
|
|
Disconnecting default connection...
|
|
Reconnecting default connection...
|
|
default connection established, continuing with the test
|
|
#
|
|
# Delete all existing binary logs.
|
|
#
|
|
RESET MASTER;
|
|
#
|
|
# Create a test table.
|
|
#
|
|
CREATE TABLE t1 (
|
|
c1 LONGTEXT
|
|
) ENGINE=MyISAM DEFAULT CHARSET latin1;
|
|
#
|
|
# Show how many rows are affected by each statement.
|
|
#
|
|
#
|
|
# Insert some big rows.
|
|
#
|
|
256MB
|
|
INSERT INTO t1 VALUES (REPEAT('ManyMegaByteBlck', 16777216));
|
|
affected rows: 1
|
|
32MB
|
|
INSERT INTO t1 VALUES (REPEAT('ManyMegaByteBlck', 2097152));
|
|
affected rows: 1
|
|
4MB
|
|
INSERT INTO t1 VALUES (REPEAT('ManyMegaByteBlck', 262144));
|
|
affected rows: 1
|
|
512KB
|
|
INSERT INTO t1 VALUES (REPEAT('ManyMegaByteBlck', 32768));
|
|
affected rows: 1
|
|
#
|
|
# Show what we have in the table.
|
|
# Do not display the column value itself, just its length.
|
|
#
|
|
SELECT LENGTH(c1) FROM t1;
|
|
LENGTH(c1) 268435456
|
|
LENGTH(c1) 33554432
|
|
LENGTH(c1) 4194304
|
|
LENGTH(c1) 524288
|
|
affected rows: 4
|
|
#
|
|
# Grow the rows by updating.
|
|
#
|
|
UPDATE t1 SET c1 = CONCAT(c1, c1);
|
|
affected rows: 4
|
|
info: Rows matched: 4 Changed: 4 Warnings: 0
|
|
#
|
|
# Show what we have in the table.
|
|
# Do not display the column value itself, just its length.
|
|
#
|
|
SELECT LENGTH(c1) FROM t1;
|
|
LENGTH(c1) 536870912
|
|
LENGTH(c1) 1048576
|
|
LENGTH(c1) 67108864
|
|
LENGTH(c1) 8388608
|
|
affected rows: 4
|
|
#
|
|
# Delete the rows.
|
|
#
|
|
DELETE FROM t1 WHERE c1 >= 'ManyMegaByteBlck';
|
|
affected rows: 4
|
|
#
|
|
# Hide how many rows are affected by each statement.
|
|
#
|
|
#
|
|
# Flush all log buffers to the log file.
|
|
#
|
|
FLUSH LOGS;
|
|
#
|
|
# Call mysqlbinlog to display the log file contents.
|
|
# NOTE: The output of mysqlbinlog is redirected to
|
|
# $MYSQLTEST_VARDIR/tmp/mysqlbinlog_big_1.out
|
|
# If you want to examine it, disable remove_file
|
|
# at the bottom of the test script.
|
|
#
|
|
#
|
|
# Cleanup.
|
|
#
|
|
# reset variable value to pass testcase checks
|
|
SET @@global.max_allowed_packet = 1048576;
|
|
DROP TABLE t1;
|
|
SET @@global.max_allowed_packet=@old_global_max_allowed_packet;
|
|
remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_big_1.out
|