mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-29753 An error is wrongly reported during INSERT with vcol index
See also commits aa8a31da
and 64678c for a Bug #22990029 fix.
In this scenario INSERT chose to check if delete unmarking is available for
a just deleted record. To build an update vector, it needed to calculate
the vcols as well. Since this INSERT was not IGNORE-flagged, recalculation
failed.
Solutiuon: temporarily set abort_on_warning=true, while calculating the
column for delete-unmarked insert.
This commit is contained in:
@@ -275,9 +275,9 @@ DROP TABLE t1;
|
||||
CREATE TABLE t1(a INT PRIMARY KEY, b INT, vb DATE AS(b) VIRTUAL, KEY(vb))
|
||||
ENGINE=InnoDB;
|
||||
INSERT IGNORE INTO t1 (a,b) VALUES(1,20190132);
|
||||
SELECT * FROM t1;
|
||||
BEGIN;
|
||||
DELETE FROM t1;
|
||||
--error ER_TRUNCATED_WRONG_VALUE
|
||||
INSERT INTO t1 (a,b) VALUES(1,20190123);
|
||||
SELECT * FROM t1;
|
||||
ROLLBACK;
|
||||
@@ -361,5 +361,24 @@ SELECT fld2 FROM t FORCE INDEX(fld1);
|
||||
--disconnect stop_purge
|
||||
DROP TABLE t, t_odd;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-29753 An error is wrongly reported during INSERT with vcol index
|
||||
--echo # See also Bug #22990029
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t(pk INT PRIMARY KEY,
|
||||
fld1 INT NOT NULL,
|
||||
fld2 INT AS (100/fld1) VIRTUAL,
|
||||
KEY(fld1), KEY(fld2));
|
||||
INSERT IGNORE t(pk, fld1) VALUES(1, 0);
|
||||
SELECT * FROM t;
|
||||
BEGIN;
|
||||
DELETE FROM t;
|
||||
INSERT INTO t (pk, fld1) VALUES(1,1);
|
||||
SELECT * FROM t;
|
||||
|
||||
--echo # Cleanup
|
||||
ROLLBACK;
|
||||
DROP TABLE t;
|
||||
|
||||
--echo # End of 10.3 tests
|
||||
|
Reference in New Issue
Block a user