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.
Browse files
MDEV-13820 trx_id_check() fails during row_log_table_apply()
When logging ROW_T_INSERT or ROW_T_UPDATE records, we did not normalize the DB_TRX_ID of the current transaction into 0 if the current transaction had started (modifying other tables) before the ALTER TABLE started. MDEV-13654 introduced this normalization for ROW_T_DELETE and for all operations with ADD PRIMARY KEY, in row_log_table_get_pk().
- Loading branch information
Showing
5 changed files
with
88 additions
and
0 deletions.
There are no files selected for viewing
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,25 @@ | ||
| CREATE TABLE t0 (pk INT PRIMARY KEY) ENGINE=InnoDB; | ||
| CREATE TABLE t1 (pk INT PRIMARY KEY, b INT) ENGINE=InnoDB; | ||
| connect con1,localhost,root,,test; | ||
| BEGIN; | ||
| INSERT INTO t0 SET pk=1; | ||
| connect con2,localhost,root,,test; | ||
| BEGIN; | ||
| INSERT INTO t0 SET pk=2; | ||
| connection default; | ||
| SET DEBUG_SYNC='alter_table_inplace_after_lock_downgrade SIGNAL prepared WAIT_FOR logged'; | ||
| ALTER TABLE t1 FORCE; | ||
| connection con1; | ||
| SET DEBUG_SYNC='now WAIT_FOR prepared'; | ||
| INSERT INTO t1 SET pk=1; | ||
| COMMIT; | ||
| disconnect con1; | ||
| connection con2; | ||
| UPDATE t1 SET b=1; | ||
| DELETE FROM t1; | ||
| ROLLBACK; | ||
| SET DEBUG_SYNC='now SIGNAL logged'; | ||
| disconnect con2; | ||
| connection default; | ||
| SET DEBUG_SYNC='RESET'; | ||
| DROP TABLE t0,t1; |
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,36 @@ | ||
| --source innodb_default_row_format.inc | ||
| --source include/have_debug.inc | ||
| --source include/have_debug_sync.inc | ||
|
|
||
| CREATE TABLE t0 (pk INT PRIMARY KEY) ENGINE=InnoDB; | ||
| CREATE TABLE t1 (pk INT PRIMARY KEY, b INT) ENGINE=InnoDB; | ||
|
|
||
| --connect (con1,localhost,root,,test) | ||
| BEGIN; | ||
| INSERT INTO t0 SET pk=1; | ||
|
|
||
| --connect (con2,localhost,root,,test) | ||
| BEGIN; | ||
| INSERT INTO t0 SET pk=2; | ||
|
|
||
| --connection default | ||
| SET DEBUG_SYNC='alter_table_inplace_after_lock_downgrade SIGNAL prepared WAIT_FOR logged'; | ||
| send ALTER TABLE t1 FORCE; | ||
|
|
||
| --connection con1 | ||
| SET DEBUG_SYNC='now WAIT_FOR prepared'; | ||
| INSERT INTO t1 SET pk=1; | ||
| COMMIT; | ||
| --disconnect con1 | ||
|
|
||
| --connection con2 | ||
| UPDATE t1 SET b=1; | ||
| DELETE FROM t1; | ||
| ROLLBACK; | ||
| SET DEBUG_SYNC='now SIGNAL logged'; | ||
| --disconnect con2 | ||
|
|
||
| --connection default | ||
| reap; | ||
| SET DEBUG_SYNC='RESET'; | ||
| DROP TABLE t0,t1; |
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,4 @@ | ||
| [redundant] | ||
| innodb_default_row_format=redundant | ||
| [dynamic] | ||
| innodb_default_row_format=dynamic |
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,2 @@ | ||
| # See also innodb_default_row_format.combinations | ||
| --source include/have_innodb.inc |
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