Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
None
Description
With the following patch applied,
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc
|
--- a/sql/sql_insert.cc
|
+++ b/sql/sql_insert.cc
|
@@ -1132,6 +1132,8 @@
|
error= write_record(thd, table, &info, result);
|
if (unlikely(error))
|
break;
|
+
|
+ DEBUG_SYNC(thd, "after_write_record");
|
info.accepted_rows++;
|
}
|
its.rewind(); |
the following test outputs warning in SELECT:
# Run with --innodb-page-size=4K |
|
--source include/have_debug_sync.inc
|
--source include/have_innodb.inc
|
--source include/have_sequence.inc
|
--connect (con2, localhost, root,,)
|
--connection default
|
set default_storage_engine= innodb; |
|
CREATE TABLE t1(fld1 INT NOT NULL PRIMARY KEY); |
CREATE TABLE t2(fld1 INT NOT NULL, |
fld2 INT AS (100/fld1) VIRTUAL, |
KEY(fld2), |
FOREIGN KEY(fld1) REFERENCES t1(fld1) |
ON UPDATE CASCADE); |
INSERT INTO t1 SELECT * from seq_1_to_1025; # Fill enough to make a new block |
INSERT INTO t2 VALUES(1, DEFAULT), (2, default); |
--connection con2
|
set debug_sync = "after_write_record signal go wait_for finish"; |
send INSERT INTO t1 VALUES(10000); |
--connection default
|
#--error ER_DIVISION_BY_ZERO |
set debug_sync = "now wait_for go"; |
UPDATE IGNORE t1 SET fld1= 0 WHERE fld1= 2; |
SELECT fld2 FROM t2; |
|
set debug_sync = "now signal finish"; |
DROP TABLE t2, t1; |
|
set debug_sync= reset; |
--connection default |
This affects gcol.innodb_virtual_fk making it nondeterministically output ER_DIVISION_BY_ZERO warning
Attachments
Issue Links
- blocks
-
MDEV-29181 Potential corruption on Foreign key update on a table with vcol index
- Stalled
- includes
-
MDEV-29753 An error is wrongly reported during INSERT with vcol index
- Closed