mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01:00
3aa618a969
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().
36 lines
800 B
Text
36 lines
800 B
Text
--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;
|