1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

Fix for BUG##5714 "Insert into MyISAM table and select ... for update]":

the fact that the transaction log is empty does not mean we're not in a transaction
(it could be BEGIN; SELECT * FOR UPDATE FROM ibtable: then we don't want to commit now, even if
the statement is a MyISAM update).
With a testcase.
This commit is contained in:
guilhem@mysql.com
2004-11-04 19:19:23 +01:00
parent 22269d451a
commit 1869cd9f83
4 changed files with 56 additions and 1 deletions

View File

@ -177,4 +177,25 @@ master-bin.001 79 Query 1 79 use `test`; BEGIN
master-bin.001 119 Query 1 79 use `test`; insert into t1 values(16)
master-bin.001 179 Query 1 79 use `test`; insert into t1 values(18)
master-bin.001 239 Query 1 239 use `test`; COMMIT
delete from t1;
delete from t2;
alter table t2 type=MyISAM;
insert into t1 values (1);
begin;
select * from t1 for update;
a
1
select (@before:=unix_timestamp())*0;
(@before:=unix_timestamp())*0
0
begin;
select * from t1 for update;
insert into t2 values (20);
Lock wait timeout exceeded; Try restarting transaction
select (@after:=unix_timestamp())*0;
(@after:=unix_timestamp())*0
0
select (@after-@before) >= 2;
(@after-@before) >= 2
1
drop table t1,t2;