mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-21658 Error on online ADD PRIMARY KEY after instant DROP/reorder
row_log_table_get_pk_old_col(): For replacing a NULL value for a
column of the being-added primary key, look up the correct
default value, even if columns had been instantly reordered or
dropped earlier. This ought to have been broken ever since
commit 0e5a4ac253
(MDEV-15562).
This commit is contained in:
@ -343,6 +343,30 @@ UPDATE t1 SET b = 1;
|
||||
SET DEBUG_SYNC='now SIGNAL update';
|
||||
connection con2;
|
||||
connection default;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-21658 Error on online ADD PRIMARY KEY after instant DROP/reorder
|
||||
#
|
||||
CREATE TABLE t1 (a INT, b INT, c INT, col INT) ENGINE=InnoDB;
|
||||
INSERT INTO t1 () VALUES ();
|
||||
ALTER TABLE t1 DROP b, DROP c, DROP col;
|
||||
ALTER TABLE t1 ADD COLUMN col INT;
|
||||
ALTER TABLE t1 DROP a, DROP col, ADD COLUMN b INT;
|
||||
connection con2;
|
||||
SET SQL_MODE= '';
|
||||
SET DEBUG_SYNC = 'row_log_table_apply1_before SIGNAL scanned WAIT_FOR dml';
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(b);
|
||||
connection default;
|
||||
SET DEBUG_SYNC = 'now WAIT_FOR scanned';
|
||||
UPDATE t1 SET b = 1;
|
||||
SET DEBUG_SYNC = 'now SIGNAL dml';
|
||||
connection con2;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'b' at row 1
|
||||
connection default;
|
||||
SELECT * FROM t1;
|
||||
b
|
||||
1
|
||||
SET DEBUG_SYNC='RESET';
|
||||
disconnect con2;
|
||||
DROP TABLE t1;
|
||||
|
Reference in New Issue
Block a user