mirror of
https://github.com/MariaDB/server.git
synced 2025-09-02 09:41:40 +03:00
include/my_sys.h: Move generic file parsing functions out to shared code, as they are used in several places. mysys/mf_iocache2.c: Move generic file parsing functions out to shared code, as they are used in several places. sql/log_event.cc: Fix XtraDB build with embedded server. XtraDB needs access to replication stuff, which is missing in embedded server. Solved by defining wrapper function for this which is compiled differently for normal and embedded case. sql/log_event.h: Fix XtraDB build with embedded server. XtraDB needs access to replication stuff, which is missing in embedded server. Solved by defining wrapper function for this which is compiled differently for normal and embedded case. sql/slave.cc: Move generic file parsing functions out to shared code, as they are used in several places.
141 lines
3.3 KiB
Plaintext
141 lines
3.3 KiB
Plaintext
# mysqlbinlog_big.test
|
|
#
|
|
# Show that mysqlbinlog can handle big rows.
|
|
#
|
|
|
|
#
|
|
# The *huge* output of mysqlbinlog will be redirected to
|
|
# $MYSQLTEST_VARDIR/$mysqlbinlog_output
|
|
#
|
|
--let $mysqlbinlog_output= tmp/mysqlbinlog_big_1.out
|
|
|
|
#--source include/have_myisam.inc
|
|
--let $engine_type= MyISAM
|
|
|
|
#
|
|
# This test case is insensitive to the binlog format
|
|
# because we don't display the output of mysqlbinlog.
|
|
#
|
|
#--source include/have_binlog_format_row.inc
|
|
|
|
--source include/have_log_bin.inc
|
|
|
|
# This is a big test.
|
|
--source include/big_test.inc
|
|
|
|
--echo #
|
|
--echo # We need big packets.
|
|
--echo #
|
|
connect (con1, localhost, root,,);
|
|
connection con1;
|
|
SET @old_global_max_allowed_packet=@@global.max_allowed_packet;
|
|
SET @@global.max_allowed_packet= 1024*1024*1024;
|
|
connect (con2, localhost, root,,);
|
|
connection con2;
|
|
|
|
--echo #
|
|
--echo # Preparatory cleanup.
|
|
--echo #
|
|
--disable_warnings
|
|
DROP TABLE IF EXISTS t1;
|
|
--enable_warnings
|
|
|
|
--echo #
|
|
--echo # We need a fixed timestamp to avoid varying results.
|
|
--echo #
|
|
SET timestamp=1000000000;
|
|
|
|
--echo #
|
|
--echo # Delete all existing binary logs.
|
|
--echo #
|
|
RESET MASTER;
|
|
|
|
--echo #
|
|
--echo # Create a test table.
|
|
--echo #
|
|
eval CREATE TABLE t1 (
|
|
c1 LONGTEXT
|
|
) ENGINE=$engine_type DEFAULT CHARSET latin1;
|
|
|
|
--echo #
|
|
--echo # Show how much rows are affected by each statement.
|
|
--echo #
|
|
--enable_info
|
|
|
|
--echo #
|
|
--echo # Insert a big row.
|
|
--echo #
|
|
#
|
|
# 256MB
|
|
#INSERT INTO t1 VALUES (REPEAT('ManyMegaByteBlck', 16777216));
|
|
#
|
|
# 32MB
|
|
INSERT INTO t1 VALUES (REPEAT('ManyMegaByteBlck', 2097152));
|
|
#
|
|
# 4MB
|
|
#INSERT INTO t1 VALUES (REPEAT('ManyMegaByteBlck', 262144));
|
|
#
|
|
# 512KB
|
|
#INSERT INTO t1 VALUES (REPEAT('ManyMegaByteBlck', 32768));
|
|
|
|
--echo #
|
|
--echo # Show what we have in the table.
|
|
--echo # Do not display the column value itself, just its length.
|
|
--echo #
|
|
query_vertical SELECT LENGTH(c1) FROM t1;
|
|
|
|
--echo #
|
|
--echo # Grow the row by updating.
|
|
--echo #
|
|
UPDATE t1 SET c1 = CONCAT(c1, c1);
|
|
|
|
--echo #
|
|
--echo # Show what we have in the table.
|
|
--echo # Do not display the column value itself, just its length.
|
|
--echo #
|
|
query_vertical SELECT LENGTH(c1) FROM t1;
|
|
|
|
--echo #
|
|
--echo # Delete the row.
|
|
--echo #
|
|
DELETE FROM t1 WHERE c1 >= 'ManyMegaByteBlck';
|
|
|
|
--echo #
|
|
--echo # Hide how much rows are affected by each statement.
|
|
--echo #
|
|
--disable_info
|
|
|
|
--echo #
|
|
--echo # Flush all log buffers to the log file.
|
|
--echo #
|
|
FLUSH LOGS;
|
|
|
|
--echo #
|
|
--echo # Call mysqlbinlog to display the log file contents.
|
|
--echo # NOTE: The output of mysqlbinlog is redirected to
|
|
--echo # \$MYSQLTEST_VARDIR/$mysqlbinlog_output
|
|
--echo # If you want to examine it, disable remove_file
|
|
--echo # at the bottom of the test script.
|
|
--echo #
|
|
let $MYSQLD_DATADIR= `select @@datadir`;
|
|
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
|
--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /Xid = [0-9]*/Xid = #/
|
|
--exec $MYSQL_BINLOG -v -v $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/$mysqlbinlog_output
|
|
|
|
--echo #
|
|
--echo # Cleanup.
|
|
--echo #
|
|
DROP TABLE t1;
|
|
|
|
connection con1;
|
|
SET @@global.max_allowed_packet=@old_global_max_allowed_packet;
|
|
|
|
--echo remove_file \$MYSQLTEST_VARDIR/$mysqlbinlog_output
|
|
#
|
|
# NOTE: If you want to see the *huge* mysqlbinlog output, disable next line:
|
|
#
|
|
--remove_file $MYSQLTEST_VARDIR/$mysqlbinlog_output
|
|
|
|
disconnect con1
|
|
disconnect con2
|