# Bug #28523025: INNODB: ASSERTION FAILURE: # LOCK0LOCK.CC:1468:LOCK_REC_GET_REC_NOT_GAP(LOCK) CREATE TABLE t0(a INT PRIMARY KEY); CREATE VIEW v0 AS SELECT a FROM t0; DROP TABLE t0; CREATE TABLE t0(a int) REPLACE SELECT 0 AS a; DROP TABLE t0; DROP VIEW v0; CREATE TABLE t0(a INT, b INT); INSERT INTO t0 VALUES (1,1), (1,2), (2,2); CREATE TABLE t1(a INT, b INT); CREATE VIEW v0 AS SELECT b FROM t1; DROP TABLE t1; CREATE TABLE t1( a INT PRIMARY KEY, b INT ) REPLACE SELECT a,b FROM t0 ORDER BY a,b; SELECT * FROM t1; a b 1 2 2 2 DROP TABLE t1; DROP TABLE t0; DROP VIEW v0; CREATE TABLE t0(a INT, b INT); INSERT INTO t0 VALUES (1,1), (1,2), (2,2); CREATE TABLE t1(a INT, b INT); CREATE VIEW v0 AS SELECT b FROM t1; DROP TABLE t1; CREATE TABLE t1( a INT PRIMARY KEY, b INT ) IGNORE SELECT a,b FROM t0 ORDER BY a,b; Warnings: Warning 1062 Duplicate entry '1' for key 'PRIMARY' SELECT * FROM t1; a b 1 1 2 2 DROP TABLE t1; DROP TABLE t0; DROP VIEW v0; CREATE TABLE t0(a INT, b INT); INSERT INTO t0 VALUES (1,1), (1,2), (2,2); CREATE TABLE t1(a INT, b INT); CREATE VIEW v0 AS SELECT b FROM t1; DROP TABLE t1; CREATE TABLE t1( a INT PRIMARY KEY, b INT ) SELECT a,b FROM t0 ORDER BY a,b; ERROR 23000: Duplicate entry '1' for key 'PRIMARY' DROP TABLE t0; DROP VIEW v0; CREATE TABLE t1(a INT NOT NULL PRIMARY KEY, b INT NOT NULL UNIQUE); INSERT INTO t1 (a,b) VALUES (1,10), (2,20), (3,30), (4,40), (5,50), (6,60), (8,80), (10,100); BEGIN; REPLACE INTO t1 (a,b) VALUES (2,13); INSERT INTO t1 (a,b) VALUES (4,43) ON DUPLICATE KEY UPDATE b=43; REPLACE INTO t1 (a,b) VALUES (7,60); INSERT INTO t1 (a,b) VALUES (9,80) ON DUPLICATE KEY UPDATE a=9; SELECT index_name,lock_type,lock_mode,lock_status,lock_data FROM performance_schema.data_locks WHERE object_schema='test' AND object_name = 't1' ORDER BY 1,2,3,4,5; index_name lock_type lock_mode lock_status lock_data NULL TABLE IX GRANTED NULL b RECORD X GRANTED 100, 10 b RECORD X GRANTED 60, 6 b RECORD X GRANTED 80, 8 b RECORD X,GAP GRANTED 60, 7 b RECORD X,GAP GRANTED 80, 9 PRIMARY RECORD X,GAP GRANTED 10 PRIMARY RECORD X,GAP GRANTED 7 PRIMARY RECORD X,GAP GRANTED 8 PRIMARY RECORD X,GAP GRANTED 9 PRIMARY RECORD X,REC_NOT_GAP GRANTED 2 PRIMARY RECORD X,REC_NOT_GAP GRANTED 4 PRIMARY RECORD X,REC_NOT_GAP GRANTED 6 PRIMARY RECORD X,REC_NOT_GAP GRANTED 8 ROLLBACK; CREATE TABLE t2(a INT NOT NULL PRIMARY KEY, b INT NOT NULL UNIQUE); INSERT INTO t2 (a,b) VALUES (1,10), (2,20), (3,30), (4,40), (5,50), (6,60), (8,80), (10,100); CREATE TABLE tt (i INT) ENGINE = InnoDB; CREATE TRIGGER t2_bi BEFORE INSERT ON t2 FOR EACH ROW INSERT INTO tt SELECT a as i FROM t2 WHERE a=10000; BEGIN; REPLACE INTO t2 (a,b) VALUES (2,13); INSERT INTO t2 (a,b) VALUES (4,43) ON DUPLICATE KEY UPDATE b=43; REPLACE INTO t2 (a,b) VALUES (7,60); INSERT INTO t2 (a,b) VALUES (9,80) ON DUPLICATE KEY UPDATE a=9; SELECT index_name,lock_type,lock_mode,lock_status,lock_data FROM performance_schema.data_locks WHERE object_schema='test' AND object_name = 't2' ORDER BY 1,2,3,4,5; index_name lock_type lock_mode lock_status lock_data NULL TABLE IS GRANTED NULL NULL TABLE IX GRANTED NULL b RECORD X GRANTED 100, 10 b RECORD X GRANTED 60, 6 b RECORD X GRANTED 80, 8 b RECORD X,GAP GRANTED 60, 7 b RECORD X,GAP GRANTED 80, 9 PRIMARY RECORD S GRANTED supremum pseudo-record PRIMARY RECORD X,GAP GRANTED 10 PRIMARY RECORD X,GAP GRANTED 7 PRIMARY RECORD X,GAP GRANTED 8 PRIMARY RECORD X,GAP GRANTED 9 PRIMARY RECORD X,REC_NOT_GAP GRANTED 2 PRIMARY RECORD X,REC_NOT_GAP GRANTED 4 PRIMARY RECORD X,REC_NOT_GAP GRANTED 6 PRIMARY RECORD X,REC_NOT_GAP GRANTED 8 ROLLBACK; DROP TRIGGER t2_bi; DROP TABLE tt; DROP TABLE t2; DROP TABLE t1;