mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-11236 Failing assertion: state == TRX_STATE_NOT_STARTED
trx_state_eq(): Add the parameter bool relaxed=false, to allow trx->state==TRX_STATE_NOT_STARTED where a different state is expected, if an error has been reported. trx_release_savepoint_for_mysql(): Pass relaxed=true to trx_state_eq(). That is, allow the transaction to be idle when ROLLBACK TO SAVEPOINT is attempted after an error has been reported to the client.
This commit is contained in:
28
mysql-test/suite/innodb/r/trigger.result
Normal file
28
mysql-test/suite/innodb/r/trigger.result
Normal file
@ -0,0 +1,28 @@
|
||||
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
|
||||
CREATE TABLE t2 (b INT) ENGINE=InnoDB;
|
||||
CREATE TABLE t3 (c INT) ENGINE=InnoDB;
|
||||
CREATE TRIGGER tr BEFORE INSERT ON t3 FOR EACH ROW BEGIN SAVEPOINT sv; INSERT INTO t2 VALUES (0); END $$
|
||||
START TRANSACTION;
|
||||
DELETE FROM t1;
|
||||
connect con1,localhost,root,,test;
|
||||
START TRANSACTION;
|
||||
INSERT INTO t2 VALUES (2);
|
||||
UPDATE t2 SET b = b+1;
|
||||
INSERT INTO t1 VALUES (1);
|
||||
connection default;
|
||||
COMMIT;
|
||||
connection con1;
|
||||
COMMIT;
|
||||
disconnect con1;
|
||||
connection default;
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
1
|
||||
SELECT * FROM t2;
|
||||
b
|
||||
3
|
||||
SELECT * FROM t3;
|
||||
c
|
||||
DROP TABLE t1, t2, t3;
|
||||
DROP TRIGGER tr;
|
||||
ERROR HY000: Trigger does not exist
|
Reference in New Issue
Block a user