103 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			103 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# 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.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								64MB
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 VALUES (REPEAT('ManyMegaByteBlck', 4194304));
							 | 
						||
| 
								 | 
							
								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)	67108864
							 | 
						||
| 
								 | 
							
								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)	134217728
							 | 
						||
| 
								 | 
							
								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;
							 | 
						||
| 
								 | 
							
								remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_big_1.out
							 |