Permalink
Show file tree
Hide file tree
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
2 changed files
with
52 additions
and
8 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| connect pause_purge,localhost,root; | ||
| START TRANSACTION WITH CONSISTENT SNAPSHOT; | ||
| connection default; | ||
| CREATE TABLE t (pk int PRIMARY KEY, sk INT UNIQUE) ENGINE=InnoDB; | ||
| INSERT INTO t VALUES (10, 100); | ||
| connect con1,localhost,root; | ||
| BEGIN; | ||
| SELECT * FROM t WHERE sk = 100 FOR UPDATE; | ||
| pk sk | ||
| 10 100 | ||
| connect con2,localhost,root; | ||
| SET DEBUG_SYNC="lock_wait_suspend_thread_enter SIGNAL insert_wait_started"; | ||
| INSERT INTO t VALUES (5, 100) # trx 1; | ||
| connect con3,localhost,root; | ||
| SET TRANSACTION ISOLATION LEVEL READ COMMITTED; | ||
| SET DEBUG_SYNC="now WAIT_FOR insert_wait_started"; | ||
| SET DEBUG_SYNC="lock_wait_suspend_thread_enter SIGNAL delete_started_waiting"; | ||
| BEGIN; | ||
| UPDATE t SET sk = 200 WHERE sk = 100; # trx 2; | ||
| connection con1; | ||
| SET DEBUG_SYNC="now WAIT_FOR delete_started_waiting"; | ||
| DELETE FROM t WHERE sk=100; | ||
| COMMIT; | ||
| disconnect con1; | ||
| connection con2; | ||
| disconnect con2; | ||
| connection con3; | ||
| must be logged in ROW format as the only event of trx 2 (con3) | ||
| INSERT INTO t VALUES (11, 101); | ||
| COMMIT; | ||
| include/show_binlog_events.inc | ||
| Log_name Pos Event_type Server_id End_log_pos Info | ||
| master-bin.000001 # Gtid # # BEGIN GTID #-#-# | ||
| master-bin.000001 # Query # # use `test`; DELETE FROM t WHERE sk=100 | ||
| master-bin.000001 # Xid # # COMMIT /* XID */ | ||
| master-bin.000001 # Gtid # # BEGIN GTID #-#-# | ||
| master-bin.000001 # Query # # use `test`; INSERT INTO t VALUES (5, 100) # trx 1 | ||
| master-bin.000001 # Xid # # COMMIT /* XID */ | ||
| master-bin.000001 # Gtid # # BEGIN GTID #-#-# | ||
| master-bin.000001 # Annotate_rows # # INSERT INTO t VALUES (11, 101) | ||
| master-bin.000001 # Table_map # # table_id: # (test.t) | ||
| master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F | ||
| master-bin.000001 # Xid # # COMMIT /* XID */ | ||
| disconnect con3; | ||
| connection default; | ||
| SELECT * FROM t; | ||
| pk sk | ||
| 5 100 | ||
| 11 101 | ||
| disconnect pause_purge; | ||
| SET DEBUG_SYNC="RESET"; | ||
| DROP TABLE t; |