mirror of
https://github.com/MariaDB/server.git
synced 2025-11-03 14:33:32 +03:00
Main problem was that no log-event print function checked for disk full error on the IO_CACHE. All changes in this patch only affects mysqlbinlog, not the server! - Changed all log-event print functions to return 1 on error - Fixed memory usage when not using --flashback. - Added printing of number of rows in row events. Can be disabled with --print-row-count=0 - Print annotated rows when using mysqlbinlog --short-form - Fixed that mysqlbinlog --debug works - Fixed create_drop_binlog.test test failure - Reorganized fields in PRINT_EVENT_INFO to be according to size to optimize storage - Don't change print_row_event_position or print_row_counts if set by user - Remove some testing of argument to my_free is 0 - base64-output=never is now supported and works in all context - Updated help information for --base64-output and --short-form - print_row_count is now on by default. Reset automatically if --short-form is used - Removed obsolote warning for mysql 5.6.0 - More DBUG_PRINT for mysqltest.cc - my_b_write_byte() now checks for flush failures. This fixed a memory overrun on disk full - my_b_printf() now returns 1 on failure, 0 on ok. This simplifies code and no old code was using the old return value of my_b_printf(). - my_b_Write_backtick_quote() now returns 1 on failure and 0 on ok - Fixed some error conditions in log printing that was not previously handled. - Slave_rows_error_report() can now handle longlong positions - Write_on_release_cache() rewritten so that we can detect errors on flush. Not depending on automatic release anymore. - Changed types for Pos and End_log_pos to 64 bit in SHOW BINLOG EVENTS - Fixed that copy_event_cache_to_string_and_reinit() works with strings longer than 4G (Changed to use LEX_STRING instead of String) - Restricted binlog_rows_event_max_size to UINT32_MAX-1 as String's are anyway restricted to UINT32_MAX - Fixed bug in rpl_binlog_state::write_to_iocache() which hide write failures (duplicate variable name) - Fixed bug in String::append if original string was not allocated - Stop mysqlbinlog output at once if there is an error. - Before printing error message, flush result file. This ensures that the error message is printed last. (Easier to find)
333 lines
13 KiB
Plaintext
333 lines
13 KiB
Plaintext
CREATE TABLE t1 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 TINYINT, f4 MEDIUMINT, f5 BIGINT, f6 INT, f7 INT, f8 char(1));
|
|
CREATE TABLE t2 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 INT, f4 INT, f5 MEDIUMINT, f6 INT, f7 INT, f8 char(1));
|
|
INSERT INTO t1 VALUES (10, 1, 2, 3, 4, 5, 6, 7, "");
|
|
INSERT INTO t1 VALUES (11, 1, 2, 3, 4, 5, 6, 7, NULL);
|
|
INSERT INTO t1 VALUES (12, 1, 2, 3, NULL, 5, 6, 7, "A");
|
|
INSERT INTO t1 VALUES (13, 1, 2, 3, 0, 5, 6, 7, "A");
|
|
INSERT INTO t2 SELECT * FROM t1;
|
|
UPDATE t2 SET f4=5 WHERE f4>0 or f4 is NULL;
|
|
DELETE FROM t1;
|
|
DELETE FROM t2;
|
|
FLUSH BINARY LOGS;
|
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
|
DELIMITER /*!*/;
|
|
# at 4
|
|
#<date> server id 1 end_log_pos 256 CRC32 XXX Start: xxx
|
|
ROLLBACK/*!*/;
|
|
# at 256
|
|
#<date> server id 1 end_log_pos 285 CRC32 XXX Gtid list []
|
|
# at 285
|
|
#<date> server id 1 end_log_pos 329 CRC32 XXX Binlog checkpoint master-bin.000001
|
|
# at 329
|
|
#<date> server id 1 end_log_pos 371 CRC32 XXX GTID 0-1-1 ddl
|
|
/*!100101 SET @@session.skip_parallel_replication=0*//*!*/;
|
|
/*!100001 SET @@session.gtid_domain_id=0*//*!*/;
|
|
/*!100001 SET @@session.server_id=1*//*!*/;
|
|
/*!100001 SET @@session.gtid_seq_no=1*//*!*/;
|
|
# at 371
|
|
#<date> server id 1 end_log_pos 555 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
|
use `test`/*!*/;
|
|
SET TIMESTAMP=X/*!*/;
|
|
SET @@session.pseudo_thread_id=5/*!*/;
|
|
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
|
|
SET @@session.sql_mode=1411383296/*!*/;
|
|
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
|
|
/*!\C latin1 *//*!*/;
|
|
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
|
SET @@session.lc_time_names=0/*!*/;
|
|
SET @@session.collation_database=DEFAULT/*!*/;
|
|
CREATE TABLE t1 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 TINYINT, f4 MEDIUMINT, f5 BIGINT, f6 INT, f7 INT, f8 char(1))
|
|
/*!*/;
|
|
# at 555
|
|
#<date> server id 1 end_log_pos 597 CRC32 XXX GTID 0-1-2 ddl
|
|
/*!100001 SET @@session.gtid_seq_no=2*//*!*/;
|
|
# at 597
|
|
#<date> server id 1 end_log_pos 774 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
|
SET TIMESTAMP=X/*!*/;
|
|
CREATE TABLE t2 (pk INT PRIMARY KEY, f1 INT, f2 INT, f3 INT, f4 INT, f5 MEDIUMINT, f6 INT, f7 INT, f8 char(1))
|
|
/*!*/;
|
|
# at 774
|
|
#<date> server id 1 end_log_pos 816 CRC32 XXX GTID 0-1-3
|
|
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
|
|
BEGIN
|
|
/*!*/;
|
|
# at 816
|
|
# at 890
|
|
#<date> server id 1 end_log_pos 890 CRC32 XXX Annotate_rows:
|
|
#Q> INSERT INTO t1 VALUES (10, 1, 2, 3, 4, 5, 6, 7, "")
|
|
#<date> server id 1 end_log_pos 946 CRC32 XXX Table_map: `test`.`t1` mapped to number num
|
|
# at 946
|
|
#<date> server id 1 end_log_pos 1015 CRC32 XXX Write_rows: table id 30 flags: STMT_END_F
|
|
### INSERT INTO `test`.`t1`
|
|
### SET
|
|
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
|
|
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @3=2 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @4=3 /* TINYINT meta=0 nullable=1 is_null=0 */
|
|
### @5=4 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
|
|
### @6=5 /* LONGINT meta=0 nullable=1 is_null=0 */
|
|
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @9='' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
|
# Number of rows: 1
|
|
# at 1015
|
|
#<date> server id 1 end_log_pos 1088 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
|
SET TIMESTAMP=X/*!*/;
|
|
COMMIT
|
|
/*!*/;
|
|
# at 1088
|
|
#<date> server id 1 end_log_pos 1130 CRC32 XXX GTID 0-1-4
|
|
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
|
|
BEGIN
|
|
/*!*/;
|
|
# at 1130
|
|
# at 1206
|
|
#<date> server id 1 end_log_pos 1206 CRC32 XXX Annotate_rows:
|
|
#Q> INSERT INTO t1 VALUES (11, 1, 2, 3, 4, 5, 6, 7, NULL)
|
|
#<date> server id 1 end_log_pos 1262 CRC32 XXX Table_map: `test`.`t1` mapped to number num
|
|
# at 1262
|
|
#<date> server id 1 end_log_pos 1330 CRC32 XXX Write_rows: table id 30 flags: STMT_END_F
|
|
### INSERT INTO `test`.`t1`
|
|
### SET
|
|
### @1=11 /* INT meta=0 nullable=0 is_null=0 */
|
|
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @3=2 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @4=3 /* TINYINT meta=0 nullable=1 is_null=0 */
|
|
### @5=4 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
|
|
### @6=5 /* LONGINT meta=0 nullable=1 is_null=0 */
|
|
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @9=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */
|
|
# Number of rows: 1
|
|
# at 1330
|
|
#<date> server id 1 end_log_pos 1403 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
|
SET TIMESTAMP=X/*!*/;
|
|
COMMIT
|
|
/*!*/;
|
|
# at 1403
|
|
#<date> server id 1 end_log_pos 1445 CRC32 XXX GTID 0-1-5
|
|
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
|
|
BEGIN
|
|
/*!*/;
|
|
# at 1445
|
|
# at 1523
|
|
#<date> server id 1 end_log_pos 1523 CRC32 XXX Annotate_rows:
|
|
#Q> INSERT INTO t1 VALUES (12, 1, 2, 3, NULL, 5, 6, 7, "A")
|
|
#<date> server id 1 end_log_pos 1579 CRC32 XXX Table_map: `test`.`t1` mapped to number num
|
|
# at 1579
|
|
#<date> server id 1 end_log_pos 1646 CRC32 XXX Write_rows: table id 30 flags: STMT_END_F
|
|
### INSERT INTO `test`.`t1`
|
|
### SET
|
|
### @1=12 /* INT meta=0 nullable=0 is_null=0 */
|
|
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @3=2 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @4=3 /* TINYINT meta=0 nullable=1 is_null=0 */
|
|
### @5=NULL /* MEDIUMINT meta=0 nullable=1 is_null=1 */
|
|
### @6=5 /* LONGINT meta=0 nullable=1 is_null=0 */
|
|
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
|
# Number of rows: 1
|
|
# at 1646
|
|
#<date> server id 1 end_log_pos 1719 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
|
SET TIMESTAMP=X/*!*/;
|
|
COMMIT
|
|
/*!*/;
|
|
# at 1719
|
|
#<date> server id 1 end_log_pos 1761 CRC32 XXX GTID 0-1-6
|
|
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
|
|
BEGIN
|
|
/*!*/;
|
|
# at 1761
|
|
# at 1836
|
|
#<date> server id 1 end_log_pos 1836 CRC32 XXX Annotate_rows:
|
|
#Q> INSERT INTO t1 VALUES (13, 1, 2, 3, 0, 5, 6, 7, "A")
|
|
#<date> server id 1 end_log_pos 1892 CRC32 XXX Table_map: `test`.`t1` mapped to number num
|
|
# at 1892
|
|
#<date> server id 1 end_log_pos 1962 CRC32 XXX Write_rows: table id 30 flags: STMT_END_F
|
|
### INSERT INTO `test`.`t1`
|
|
### SET
|
|
### @1=13 /* INT meta=0 nullable=0 is_null=0 */
|
|
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @3=2 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @4=3 /* TINYINT meta=0 nullable=1 is_null=0 */
|
|
### @5=0 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
|
|
### @6=5 /* LONGINT meta=0 nullable=1 is_null=0 */
|
|
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
|
# Number of rows: 1
|
|
# at 1962
|
|
#<date> server id 1 end_log_pos 2035 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
|
SET TIMESTAMP=X/*!*/;
|
|
COMMIT
|
|
/*!*/;
|
|
# at 2035
|
|
#<date> server id 1 end_log_pos 2077 CRC32 XXX GTID 0-1-7
|
|
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
|
|
BEGIN
|
|
/*!*/;
|
|
# at 2077
|
|
# at 2131
|
|
#<date> server id 1 end_log_pos 2131 CRC32 XXX Annotate_rows:
|
|
#Q> INSERT INTO t2 SELECT * FROM t1
|
|
#<date> server id 1 end_log_pos 2187 CRC32 XXX Table_map: `test`.`t2` mapped to number num
|
|
# at 2187
|
|
#<date> server id 1 end_log_pos 2354 CRC32 XXX Write_rows: table id 31 flags: STMT_END_F
|
|
### INSERT INTO `test`.`t2`
|
|
### SET
|
|
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
|
|
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @3=2 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @4=3 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @5=4 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
|
|
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @9='' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
|
### INSERT INTO `test`.`t2`
|
|
### SET
|
|
### @1=11 /* INT meta=0 nullable=0 is_null=0 */
|
|
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @3=2 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @4=3 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @5=4 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
|
|
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @9=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */
|
|
### INSERT INTO `test`.`t2`
|
|
### SET
|
|
### @1=12 /* INT meta=0 nullable=0 is_null=0 */
|
|
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @3=2 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @4=3 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @5=NULL /* INT meta=0 nullable=1 is_null=1 */
|
|
### @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
|
|
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
|
### INSERT INTO `test`.`t2`
|
|
### SET
|
|
### @1=13 /* INT meta=0 nullable=0 is_null=0 */
|
|
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @3=2 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @4=3 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @5=0 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @6=5 /* MEDIUMINT meta=0 nullable=1 is_null=0 */
|
|
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
|
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
|
# Number of rows: 4
|
|
# at 2354
|
|
#<date> server id 1 end_log_pos 2427 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
|
SET TIMESTAMP=X/*!*/;
|
|
COMMIT
|
|
/*!*/;
|
|
# at 2427
|
|
#<date> server id 1 end_log_pos 2469 CRC32 XXX GTID 0-1-8
|
|
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
|
|
BEGIN
|
|
/*!*/;
|
|
# at 2469
|
|
# at 2535
|
|
#<date> server id 1 end_log_pos 2535 CRC32 XXX Annotate_rows:
|
|
#Q> UPDATE t2 SET f4=5 WHERE f4>0 or f4 is NULL
|
|
#<date> server id 1 end_log_pos 2591 CRC32 XXX Table_map: `test`.`t2` mapped to number num
|
|
# at 2591
|
|
#<date> server id 1 end_log_pos 2665 CRC32 XXX Update_rows: table id 31 flags: STMT_END_F
|
|
### UPDATE `test`.`t2`
|
|
### WHERE
|
|
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
|
|
### @5=4 /* INT meta=0 nullable=1 is_null=0 */
|
|
### SET
|
|
### @5=5 /* INT meta=0 nullable=1 is_null=0 */
|
|
### UPDATE `test`.`t2`
|
|
### WHERE
|
|
### @1=11 /* INT meta=0 nullable=0 is_null=0 */
|
|
### @5=4 /* INT meta=0 nullable=1 is_null=0 */
|
|
### SET
|
|
### @5=5 /* INT meta=0 nullable=1 is_null=0 */
|
|
### UPDATE `test`.`t2`
|
|
### WHERE
|
|
### @1=12 /* INT meta=0 nullable=0 is_null=0 */
|
|
### @5=NULL /* INT meta=0 nullable=1 is_null=1 */
|
|
### SET
|
|
### @5=5 /* INT meta=0 nullable=1 is_null=0 */
|
|
# Number of rows: 3
|
|
# at 2665
|
|
#<date> server id 1 end_log_pos 2738 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
|
SET TIMESTAMP=X/*!*/;
|
|
COMMIT
|
|
/*!*/;
|
|
# at 2738
|
|
#<date> server id 1 end_log_pos 2780 CRC32 XXX GTID 0-1-9
|
|
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
|
|
BEGIN
|
|
/*!*/;
|
|
# at 2780
|
|
# at 2817
|
|
#<date> server id 1 end_log_pos 2817 CRC32 XXX Annotate_rows:
|
|
#Q> DELETE FROM t1
|
|
#<date> server id 1 end_log_pos 2873 CRC32 XXX Table_map: `test`.`t1` mapped to number num
|
|
# at 2873
|
|
#<date> server id 1 end_log_pos 2927 CRC32 XXX Delete_rows: table id 30 flags: STMT_END_F
|
|
### DELETE FROM `test`.`t1`
|
|
### WHERE
|
|
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
|
|
### DELETE FROM `test`.`t1`
|
|
### WHERE
|
|
### @1=11 /* INT meta=0 nullable=0 is_null=0 */
|
|
### DELETE FROM `test`.`t1`
|
|
### WHERE
|
|
### @1=12 /* INT meta=0 nullable=0 is_null=0 */
|
|
### DELETE FROM `test`.`t1`
|
|
### WHERE
|
|
### @1=13 /* INT meta=0 nullable=0 is_null=0 */
|
|
# Number of rows: 4
|
|
# at 2927
|
|
#<date> server id 1 end_log_pos 3000 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
|
SET TIMESTAMP=X/*!*/;
|
|
COMMIT
|
|
/*!*/;
|
|
# at 3000
|
|
#<date> server id 1 end_log_pos 3042 CRC32 XXX GTID 0-1-10
|
|
/*!100001 SET @@session.gtid_seq_no=10*//*!*/;
|
|
BEGIN
|
|
/*!*/;
|
|
# at 3042
|
|
# at 3079
|
|
#<date> server id 1 end_log_pos 3079 CRC32 XXX Annotate_rows:
|
|
#Q> DELETE FROM t2
|
|
#<date> server id 1 end_log_pos 3135 CRC32 XXX Table_map: `test`.`t2` mapped to number num
|
|
# at 3135
|
|
#<date> server id 1 end_log_pos 3189 CRC32 XXX Delete_rows: table id 31 flags: STMT_END_F
|
|
### DELETE FROM `test`.`t2`
|
|
### WHERE
|
|
### @1=10 /* INT meta=0 nullable=0 is_null=0 */
|
|
### DELETE FROM `test`.`t2`
|
|
### WHERE
|
|
### @1=11 /* INT meta=0 nullable=0 is_null=0 */
|
|
### DELETE FROM `test`.`t2`
|
|
### WHERE
|
|
### @1=12 /* INT meta=0 nullable=0 is_null=0 */
|
|
### DELETE FROM `test`.`t2`
|
|
### WHERE
|
|
### @1=13 /* INT meta=0 nullable=0 is_null=0 */
|
|
# Number of rows: 4
|
|
# at 3189
|
|
#<date> server id 1 end_log_pos 3262 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
|
SET TIMESTAMP=X/*!*/;
|
|
COMMIT
|
|
/*!*/;
|
|
# at 3262
|
|
#<date> server id 1 end_log_pos 3310 CRC32 XXX Rotate to master-bin.000002 pos: 4
|
|
DELIMITER ;
|
|
# End of log file
|
|
ROLLBACK /* added by mysqlbinlog */;
|
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
|
DROP TABLE t1,t2;
|