mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
1efdd5a572
(and to follow the naming conventons). keep old debug variable, but mark it as deprecated.
118 lines
2.4 KiB
Text
118 lines
2.4 KiB
Text
DROP TABLE IF EXISTS bug_53756 ;
|
|
CREATE TABLE bug_53756 (pk INT, c1 INT) ENGINE=InnoDB;
|
|
ALTER TABLE bug_53756 ADD PRIMARY KEY (pk);
|
|
INSERT INTO bug_53756 VALUES(1, 11), (2, 22), (3, 33), (4, 44);
|
|
|
|
# Select a less restrictive isolation level.
|
|
SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
|
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
|
COMMIT;
|
|
|
|
# Start a transaction in the default connection for isolation.
|
|
START TRANSACTION;
|
|
SELECT @@tx_isolation;
|
|
@@tx_isolation
|
|
READ-COMMITTED
|
|
SELECT * FROM bug_53756;
|
|
pk c1
|
|
1 11
|
|
2 22
|
|
3 33
|
|
4 44
|
|
|
|
# connection con1 deletes row 1
|
|
START TRANSACTION;
|
|
SELECT @@tx_isolation;
|
|
@@tx_isolation
|
|
READ-COMMITTED
|
|
DELETE FROM bug_53756 WHERE pk=1;
|
|
|
|
# connection con2 deletes row 2
|
|
START TRANSACTION;
|
|
SELECT @@tx_isolation;
|
|
@@tx_isolation
|
|
READ-COMMITTED
|
|
DELETE FROM bug_53756 WHERE pk=2;
|
|
|
|
# connection con3 updates row 3
|
|
START TRANSACTION;
|
|
SELECT @@tx_isolation;
|
|
@@tx_isolation
|
|
READ-COMMITTED
|
|
UPDATE bug_53756 SET c1=77 WHERE pk=3;
|
|
|
|
# connection con4 updates row 4
|
|
START TRANSACTION;
|
|
SELECT @@tx_isolation;
|
|
@@tx_isolation
|
|
READ-COMMITTED
|
|
UPDATE bug_53756 SET c1=88 WHERE pk=4;
|
|
|
|
# connection con5 inserts row 5
|
|
START TRANSACTION;
|
|
SELECT @@tx_isolation;
|
|
@@tx_isolation
|
|
READ-COMMITTED
|
|
INSERT INTO bug_53756 VALUES(5, 55);
|
|
|
|
# connection con6 inserts row 6
|
|
START TRANSACTION;
|
|
SELECT @@tx_isolation;
|
|
@@tx_isolation
|
|
READ-COMMITTED
|
|
INSERT INTO bug_53756 VALUES(6, 66);
|
|
|
|
# connection con1 commits.
|
|
COMMIT;
|
|
|
|
# connection con3 commits.
|
|
COMMIT;
|
|
|
|
# connection con4 rolls back.
|
|
ROLLBACK;
|
|
|
|
# connection con6 rolls back.
|
|
ROLLBACK;
|
|
|
|
# The connections 2 and 5 stay open.
|
|
|
|
# connection default selects resulting data.
|
|
# Delete of row 1 was committed.
|
|
# Update of row 3 was committed.
|
|
# Due to isolation level read committed, these should be included.
|
|
# All other changes should not be included.
|
|
SELECT * FROM bug_53756;
|
|
pk c1
|
|
2 22
|
|
3 77
|
|
4 44
|
|
|
|
# connection default
|
|
#
|
|
# Crash server.
|
|
START TRANSACTION;
|
|
INSERT INTO bug_53756 VALUES (666,666);
|
|
SET SESSION debug_dbug="+d,crash_commit_before";
|
|
COMMIT;
|
|
ERROR HY000: Lost connection to MySQL server during query
|
|
|
|
#
|
|
# disconnect con1, con2, con3, con4, con5, con6.
|
|
#
|
|
# Restart server.
|
|
|
|
#
|
|
# Select recovered data.
|
|
# Delete of row 1 was committed.
|
|
# Update of row 3 was committed.
|
|
# These should be included.
|
|
# All other changes should not be included.
|
|
# Delete of row 2 and insert of row 5 should be rolled back
|
|
SELECT * FROM bug_53756;
|
|
pk c1
|
|
2 22
|
|
3 77
|
|
4 44
|
|
|
|
# Clean up.
|
|
DROP TABLE bug_53756;
|