mariadb/mysql-test/suite/binlog/r/binlog_innodb.result

174 lines
6 KiB
Text
Raw Normal View History

BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
SET BINLOG_FORMAT=MIXED;
RESET MASTER;
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=INNODB;
INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6);
BEGIN;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
UPDATE t1 SET b = 2*a WHERE a > 1;
COMMIT;
BEGIN;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
UPDATE t1 SET b = a * a WHERE a > 3;
COMMIT;
SET BINLOG_FORMAT=STATEMENT;
BEGIN;
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
UPDATE t1 SET b = 1*a WHERE a > 1;
ERROR HY000: Binary logging not possible. Message: Transaction level 'READ-UNCOMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
COMMIT;
BEGIN;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
UPDATE t1 SET b = 2*a WHERE a > 2;
ERROR HY000: Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
COMMIT;
BEGIN;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
UPDATE t1 SET b = 3*a WHERE a > 3;
COMMIT;
BEGIN;
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
UPDATE t1 SET b = 4*a WHERE a > 4;
COMMIT;
SET BINLOG_FORMAT=MIXED;
BEGIN;
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
UPDATE t1 SET b = 1*a WHERE a > 1;
COMMIT;
BEGIN;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
UPDATE t1 SET b = 2*a WHERE a > 2;
COMMIT;
BEGIN;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
UPDATE t1 SET b = 3*a WHERE a > 3;
COMMIT;
BEGIN;
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
UPDATE t1 SET b = 4*a WHERE a > 4;
COMMIT;
SET BINLOG_FORMAT=ROW;
BEGIN;
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
UPDATE t1 SET b = 1*a WHERE a > 1;
COMMIT;
BEGIN;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
UPDATE t1 SET b = 2*a WHERE a > 2;
COMMIT;
BEGIN;
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
UPDATE t1 SET b = 3*a WHERE a > 3;
COMMIT;
BEGIN;
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
UPDATE t1 SET b = 4*a WHERE a > 4;
COMMIT;
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=INNODB
master-bin.000001 # Query # # BEGIN
BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4),(5,5),(6,6)
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
master-bin.000001 # Query # # use `test`; UPDATE t1 SET b = 2*a WHERE a > 1
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Update_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
master-bin.000001 # Query # # use `test`; UPDATE t1 SET b = 3*a WHERE a > 3
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
master-bin.000001 # Query # # use `test`; UPDATE t1 SET b = 4*a WHERE a > 4
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Update_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Update_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
master-bin.000001 # Query # # use `test`; UPDATE t1 SET b = 3*a WHERE a > 3
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
master-bin.000001 # Query # # use `test`; UPDATE t1 SET b = 4*a WHERE a > 4
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Update_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Update_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Update_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Query # # BEGIN
BUG#23051 (READ COMMITTED breaks mixed and statement-based replication): Patch to add binlog format capabilities to the InnoDB storage engine. The engine will not allow statement format logging when in READ COMMITTED or READ UNCOMMITTED transaction isolation level. In addition, an error is generated when trying to use READ COMMITTED or READ UNCOMMITTED transaction isolation level in STATEMENT binlog mode. sql/handler.h: Adding declaration of already global arrays. sql/share/errmsg.txt: Adding error messages for invalid changes of transaction isolation level and binlog mode switch. Removing messages that are not needed any more (this cset it pushed together with the cset that introduced these messages, so it is safe to remove the messages). sql/sql_base.cc: Some changes to error reporting code to get more informative messages. storage/innobase/handler/ha_innodb.cc: Adding capabilities to storage engine. Ha_innobase:table_flags() now compute flags on a per-statement basis and the statement capabilities flag is just set if the transaction isolation level is below READ COMMITTED. An informative message is printed in the event that the transaction isolation level is below READ COMMITTED and the binlog mode is STATEMENT. storage/innobase/handler/ha_innodb.h: Accomodating to changes in the server code that switched from ulong to Table_flags as type for the table flags. mysql-test/r/binlog_innodb.result: New BitKeeper file ``mysql-test/r/binlog_innodb.result'' mysql-test/t/binlog_innodb.test: New BitKeeper file ``mysql-test/t/binlog_innodb.test''
2007-06-12 21:47:00 +02:00
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Update_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
DROP TABLE t1;
flush status;
show status like "binlog_cache_use";
Variable_name Value
Binlog_cache_use 0
show status like "binlog_cache_disk_use";
Variable_name Value
Binlog_cache_disk_use 0
create table t1 (a int) engine=innodb;
show status like "binlog_cache_use";
Variable_name Value
Binlog_cache_use 1
show status like "binlog_cache_disk_use";
Variable_name Value
Binlog_cache_disk_use 1
begin;
delete from t1;
commit;
show status like "binlog_cache_use";
Variable_name Value
Binlog_cache_use 2
show status like "binlog_cache_disk_use";
Variable_name Value
Binlog_cache_disk_use 1
drop table t1;
CREATE TABLE `t1` (
`a` int(11) NOT NULL auto_increment,
`b` int(11) default NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
CREATE TABLE `t2` (
`a` int(11) NOT NULL auto_increment,
`b` int(11) default NULL,
PRIMARY KEY (`a`)
) ENGINE=INNODB DEFAULT CHARSET=latin1 ;
insert into t1 values (1,1),(2,2);
insert into t2 values (1,1),(4,4);
reset master;
UPDATE t2,t1 SET t2.a=t1.a+2;
ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
select * from t2 /* must be (3,1), (4,4) */;
a b
1 1
4 4
show master status /* there must no UPDATE in binlog */;
File Position Binlog_Do_DB Binlog_Ignore_DB
master-bin.000001 106
delete from t1;
delete from t2;
insert into t1 values (1,2),(3,4),(4,4);
insert into t2 values (1,2),(3,4),(4,4);
reset master;
UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a;
ERROR 23000: Duplicate entry '4' for key 'PRIMARY'
show master status /* there must be no UPDATE query event */;
File Position Binlog_Do_DB Binlog_Ignore_DB
master-bin.000001 106
drop table t1, t2;
Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.1-rpl into maint1.mysql.com:/data/localhome/tsmith/bk/maint/51 include/m_ctype.h: Auto merged mysql-test/Makefile.am: Auto merged mysql-test/lib/mtr_report.pl: Auto merged mysql-test/r/rpl_ssl.result: Auto merged mysql-test/t/innodb.test: Auto merged mysql-test/t/multi_update.test: Auto merged mysql-test/t/rpl_row_until.test: Auto merged mysql-test/t/rpl_ssl.test: Auto merged mysql-test/t/rpl_stm_until.test: Auto merged mysys/charset-def.c: Auto merged mysys/charset.c: Auto merged sql/item_create.cc: Auto merged sql/log_event.cc: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/sql_acl.cc: Auto merged sql/sql_base.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_update.cc: Auto merged strings/ctype-big5.c: Auto merged strings/ctype-gbk.c: Auto merged strings/ctype-sjis.c: Auto merged strings/ctype-uca.c: Auto merged strings/ctype.c: Auto merged BitKeeper/deleted/.del-binlog_innodb.result: Delete: mysql-test/r/binlog_innodb.result BitKeeper/deleted/.del-binlog_innodb.test: Delete: mysql-test/t/binlog_innodb.test mysql-test/r/binlog_innodb.result: Fix merge of two independent binlog_innodb tests (from -rpl and -maint) mysql-test/t/binlog_innodb.test: Fix merge of two independent binlog_innodb tests (from -rpl and -maint) mysql-test/r/innodb.result: Use local (manual merge) mysql-test/r/multi_update.result: Use remote (manual merge) mysql-test/t/rpl_log_pos.test: Manual merge mysql-test/r/rpl_log_pos.result: Manual merge, part 2
2007-06-21 22:10:40 +02:00
End of tests