Details
-
Bug
-
Status: Closed (View Workflow)
-
Blocker
-
Resolution: Fixed
-
10.2(EOL), 10.3(EOL), 10.4(EOL), 10.5, 10.6, 10.7(EOL)
Description
MySQL 5.7.36 includes a bug fix with a test case:
Bug #33053297 VIRTUAL INDEX CORRUPTED DURING CASCADE UPDATE ON CHILD TABLE
The test case resembles MDEV-24041. A quick attempt to apply the patch (with some rewriting in row_ins_foreign_fill_virtual()) did not affect the outcome. There is a result difference:
@@ -918,7 +918,6 @@
|
1 NULL 2020-10-22 13:32:41 2020-
|
SELECT `date_sent` FROM `email_stats` WHERE `generated_sent_email` = '2020-';
|
date_sent
|
-2020-10-22 13:32:41
|
DROP TABLE `email_stats`;
|
DROP TABLE `emails`;
|
# test-case 4
|
@@ -956,7 +955,6 @@
|
1 NULL 2020-10-22 13:32:41 2020-
|
SELECT `date_sent` FROM `email_stats` WHERE `generated_sent_email` = '2020-';
|
date_sent
|
-2020-10-22 13:32:41
|
DROP TABLE `email_stats`;
|
DROP TABLE `emails`;
|
# End of 10.2 tests |
Curiously, if I add CHECK TABLE to the test, it will not report any corruption.
Attachments
Issue Links
- blocks
-
MDEV-26867 Merge new release of InnoDB 5.7.36 to 10.2
-
- Closed
-
nikitamalyavin, I applied the test from the patch to MariaDB as foreign_key.patch
. (The final desired location would be gcol.innodb_virtual_fk where we already have a similar test.)
This is otherwise the same as the original test, but there now is a trailing space in two WHERE conditions in the .test file. I wanted to see if it matters.
With that, and with or without my attempted crude port of the fix, the test still fails like this:
10.2 69b3de830d531e5cbc57c1a43c7bd55b31f7197e
innodb.foreign_key 'innodb' [ fail ]
Test ended at 2021-10-20 21:20:51
CURRENT_TEST: innodb.foreign_key
--- /mariadb/10.2o/mysql-test/suite/innodb/r/foreign_key.result 2021-10-20 17:54:42.173723268 +0300
+++ /mariadb/10.2o/mysql-test/suite/innodb/r/foreign_key.reject 2021-10-20 21:20:51.146557129 +0300
@@ -916,9 +916,8 @@
SELECT * FROM `email_stats`;
id email_id date_sent generated_sent_email
1 NULL 2020-10-22 13:32:41 2020-
-SELECT `date_sent` FROM `email_stats` WHERE `generated_sent_email` = '2020-';
+SELECT `date_sent` FROM `email_stats` WHERE `generated_sent_email` = '2020- ';
date_sent
-2020-10-22 13:32:41
DROP TABLE `email_stats`;
DROP TABLE `emails`;
# test-case 4
@@ -954,9 +953,8 @@
SELECT * FROM `email_stats`;
id email_id date_sent generated_sent_email
1 NULL 2020-10-22 13:32:41 2020-
-SELECT `date_sent` FROM `email_stats` WHERE `generated_sent_email` = '2020-';
+SELECT `date_sent` FROM `email_stats` WHERE `generated_sent_email` = '2020- ';
date_sent
-2020-10-22 13:32:41
DROP TABLE `email_stats`;
DROP TABLE `emails`;
# End of 10.2 tests
mysqltest: Result length mismatch