You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The rest of the cases (except the second) are phantom reads, a violation to serializability.
Changing the table schema to be (i int) makes things behave as in issue #2698. Changing the table schema to be (i int PRIMARY KEY, j int) makes no difference.
There is a somewhat specific circumstance that causes a serializable isolation transaction to break serializability.
CREATE TABLE t (i int PRIMARY KEY)
INSERT INTO t VALUES (1), (2), (3)
BEGIN ISOLATION LEVEL SERIALIZABLE
DELETE FROM t WHERE i = 2
COMMIT
SELECT * FROM t
SELECT i FROM t WHERE i = 1
SELECT i FROM t WHERE i = 2
SELECT i FROM t WHERE i > 1
SELECT i FROM t
The failure in the one case above is of the following form:
The rest of the cases (except the second) are phantom reads, a violation to serializability.
Changing the table schema to be
(i int)
makes things behave as in issue #2698. Changing the table schema to be(i int PRIMARY KEY, j int)
makes no difference.Related: #2823.
The text was updated successfully, but these errors were encountered: