mirror of
https://github.com/MariaDB/server.git
synced 2025-02-07 06:12:18 +01:00
9e1fb104a3
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEF39AEP5WyjM2MAMF8WVvJMdM0dgFAmck77AACgkQ8WVvJMdM 0dgccQ/+Lls8fWt4D+gMPP7x+drJSO/IE/gZFt3ugbWF+/p3B2xXAs5AAE83wxEh QSbp4DCkb/9PnuakhLmzg0lFbxMUlh4rsJ1YyiuLB2J+YgKbAc36eQQf+rtYSipd DT5uRk36c9wOcOXo/mMv4APEvpPXBIBdIL4VvpKFbIOE7xT24Sp767zWXdXqrB1f JgOQdM2ct+bvSPC55oZ5p1kqyxwvd6K6+3RB3CIpwW9zrVSLg7enT3maLjj/761s jvlRae+Cv+r+Hit9XpmEH6n2FYVgIJ3o3WhdAHwN0kxKabXYTg7OCB7QxDZiUHI9 C/5goKmKaPB1PCQyuTQyLSyyK9a8nPfgn6tqw/p/ZKDQhKT9sWJv/5bSWecrVndx LLYifSTrFC/eXLzgPvCnNv/U8SjsZaAdMIKS681+qDJ0P5abghUIlGnMYTjYXuX1 1B6Vrr0bdrQ3V1CLB3tpkRjpUvicrsabtuAUAP65QnEG2G9UJXklOer+DE291Gsl f1I0o6C1zVGAOkUUD3QEYaHD8w7hlvyfKme5oXKUm3DOjaAar5UUKLdr6prxRZL4 ebhmGEy42Mf8fBYoeohIxmxgvv6h2Xd9xCukgPp8hFpqJGw8abg7JNZTTKH4h2IY J51RpD10h4eoi6WRn3opEcjexTGvZ+xNR7yYO5WxWw6VIre9IUA= =s+WW -----END PGP SIGNATURE----- Merge tag '11.4' into 11.6 MariaDB 11.4.4 release
161 lines
3.1 KiB
Text
161 lines
3.1 KiB
Text
#
|
|
# MDEV-26642 Weird SELECT view when a record is
|
|
# modified to the same value by two transactions
|
|
# MDEV-32898 Phantom rows caused by updates of PRIMARY KEY
|
|
#
|
|
CREATE TABLE t(a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
|
|
INSERT INTO t VALUES (1,1),(2,2);
|
|
BEGIN;
|
|
SELECT * FROM t LOCK IN SHARE MODE;
|
|
a b
|
|
1 1
|
|
2 2
|
|
connect con_weird,localhost,root;
|
|
SET innodb_snapshot_isolation=OFF;
|
|
BEGIN;
|
|
SELECT * FROM t;
|
|
a b
|
|
1 1
|
|
2 2
|
|
connect consistent,localhost,root;
|
|
SET innodb_snapshot_isolation=ON;
|
|
BEGIN;
|
|
SELECT * FROM t;
|
|
a b
|
|
1 1
|
|
2 2
|
|
connection default;
|
|
UPDATE t SET a=3 WHERE b=2;
|
|
COMMIT;
|
|
connection consistent;
|
|
UPDATE t SET b=3;
|
|
ERROR HY000: Record has changed since last read in table 't'
|
|
SELECT * FROM t;
|
|
a b
|
|
1 1
|
|
3 2
|
|
COMMIT;
|
|
connection con_weird;
|
|
UPDATE t SET b=3;
|
|
SELECT * FROM t;
|
|
a b
|
|
1 3
|
|
2 2
|
|
3 3
|
|
COMMIT;
|
|
connection default;
|
|
SELECT * FROM t;
|
|
a b
|
|
1 3
|
|
3 3
|
|
DROP TABLE t;
|
|
#
|
|
# MDEV-26643 Inconsistent behaviors of UPDATE under
|
|
# READ UNCOMMITTED and READ COMMITTED isolation level
|
|
#
|
|
CREATE TABLE t(a INT, b INT) ENGINE=InnoDB;
|
|
INSERT INTO t VALUES(NULL, 1), (2, 2);
|
|
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
|
BEGIN;
|
|
UPDATE t SET a = 10;
|
|
connection consistent;
|
|
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
|
UPDATE t SET b = 20 WHERE a;
|
|
connection default;
|
|
COMMIT;
|
|
connection consistent;
|
|
SELECT * FROM t;
|
|
a b
|
|
10 20
|
|
10 20
|
|
connection default;
|
|
TRUNCATE TABLE t;
|
|
INSERT INTO t VALUES(NULL, 1), (2, 2);
|
|
BEGIN;
|
|
UPDATE t SET a = 10;
|
|
connection consistent;
|
|
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
|
UPDATE t SET b = 20 WHERE a;
|
|
connection default;
|
|
COMMIT;
|
|
connection consistent;
|
|
SELECT * FROM t;
|
|
a b
|
|
10 20
|
|
10 20
|
|
connection default;
|
|
TRUNCATE TABLE t;
|
|
INSERT INTO t VALUES(NULL, 1), (2, 2);
|
|
BEGIN;
|
|
UPDATE t SET a = 10;
|
|
connection con_weird;
|
|
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
|
UPDATE t SET b = 20 WHERE a;
|
|
connection default;
|
|
SELECT * FROM t;
|
|
a b
|
|
10 1
|
|
10 2
|
|
COMMIT;
|
|
connection con_weird;
|
|
COMMIT;
|
|
connection default;
|
|
SELECT * FROM t;
|
|
a b
|
|
10 1
|
|
10 20
|
|
TRUNCATE TABLE t;
|
|
#
|
|
# MDEV-34108 Inappropriate semi-consistent read in snapshot isolation
|
|
#
|
|
INSERT INTO t VALUES(NULL, 1), (1, 1);
|
|
BEGIN;
|
|
UPDATE t SET b = 3;
|
|
connection consistent;
|
|
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
|
BEGIN;
|
|
UPDATE t SET b = 2 WHERE a;
|
|
connection default;
|
|
UPDATE t SET a = 1;
|
|
COMMIT;
|
|
connection consistent;
|
|
COMMIT;
|
|
connection default;
|
|
SELECT * FROM t;
|
|
a b
|
|
1 2
|
|
1 2
|
|
DROP TABLE t;
|
|
#
|
|
# MDEV-33802 Weird read view after ROLLBACK of other transactions
|
|
#
|
|
CREATE TABLE t(a INT PRIMARY KEY, b INT UNIQUE) ENGINE=InnoDB;
|
|
INSERT INTO t SET a=1;
|
|
BEGIN;
|
|
INSERT INTO t SET a=2;
|
|
connection consistent;
|
|
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
|
SAVEPOINT sp1;
|
|
SELECT * FROM t FORCE INDEX (b) FOR UPDATE;
|
|
ERROR HY000: Record has changed since last read in table 't'
|
|
SAVEPOINT sp1;
|
|
connection con_weird;
|
|
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
|
SELECT * FROM t FORCE INDEX (b) FOR UPDATE;
|
|
connection default;
|
|
ROLLBACK;
|
|
connection con_weird;
|
|
a b
|
|
1 NULL
|
|
SELECT * FROM t FORCE INDEX (b) FOR UPDATE;
|
|
a b
|
|
1 NULL
|
|
disconnect con_weird;
|
|
connection consistent;
|
|
SELECT * FROM t FORCE INDEX (b) FOR UPDATE;
|
|
a b
|
|
1 NULL
|
|
disconnect consistent;
|
|
connection default;
|
|
DROP TABLE t;
|
|
# End of 10.6 tests
|