Details
-
Bug
-
Status: Needs Feedback (View Workflow)
-
Critical
-
Resolution: Unresolved
-
10.5.12, 10.11.2, 11.2.2
-
None
-
windows 10
Description
DROP TABLE IF EXISTS mtest; |
CREATE TABLE mtest(x INT DEFAULT 0, c0 INT PRIMARY KEY, c1 INT); |
INSERT INTO mtest VALUES (0, 1, 1), (0, 2 , 2); |
-- Initial Table: |
View{ |
1:[0, 1, 1]
|
2:[0, 2, 2]
|
}
|
/* s1 */SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; |
/* s1 */BEGIN; |
/* s2 */SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; |
/* s2 */BEGIN; |
/* s2 */UPDATE mtest SET c0=37 WHERE c1=2; |
/* s1 */UPDATE mtest SET x = x + 10 WHERE True;(block) |
/* s2 */COMMIT; |
/* s1 */COMMIT; |
mysql> SELECT * FROM mtest; |
+------+----+------+ |
| x | c0 | c1 |
|
+------+----+------+ |
| 10 | 1 | 1 |
|
| 10 | 37 | 2 |
|
+------+----+------+ |
|
|
DROP TABLE IF EXISTS mtest; |
CREATE TABLE mtest(x INT DEFAULT 0, c0 INT PRIMARY KEY, c1 INT); |
INSERT INTO mtest VALUES (0, 1, 1), (0, 67, 2); |
-- Initial Table: |
View{ |
1:[0, 1, 1]
|
2:[0, 67, 2]
|
}
|
/* s1 */SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; |
/* s1 */BEGIN; |
/* s2 */SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; |
/* s2 */BEGIN; |
/* s2 */UPDATE mtest SET c0=37 WHERE c1=2; |
/* s1 */UPDATE mtest SET x = x + 10 WHERE True;(block) |
/* s2 */COMMIT; |
/* s1 */COMMIT; |
mysql> SELECT * FROM mtest; |
+------+----+------+ |
| x | c0 | c1 |
|
+------+----+------+ |
| 10 | 1 | 1 |
|
| 0 | 37 | 2 |
|
+------+----+------+ |
Simply changing the initial value of c0 ultimately causes the update to x to fail. From a user perspective, I believe this discrepancy is incorrect.
Attachments
Issue Links
- relates to
-
MDEV-35124 Set innodb_snapshot_isolation=ON by default
-
- Closed
-