mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
58 lines
1.2 KiB
Text
58 lines
1.2 KiB
Text
-- source include/not_embedded.inc
|
|
-- source include/have_innodb.inc
|
|
|
|
--disable_warnings
|
|
drop table if exists t1;
|
|
--enable_warnings
|
|
|
|
# REPLACE INTO ... SELECT and INSERT INTO ... SELECT should do
|
|
# a consistent read of the source table.
|
|
|
|
connect (a,localhost,root,,);
|
|
connect (b,localhost,root,,);
|
|
connection a;
|
|
set session transaction isolation level read committed;
|
|
create table t1(a int not null) engine=innodb DEFAULT CHARSET=latin1;
|
|
create table t2 like t1;
|
|
insert into t2 values (1),(2),(3),(4),(5),(6),(7);
|
|
set autocommit=0;
|
|
|
|
# REPLACE INTO ... SELECT case
|
|
begin;
|
|
# this should not result in any locks on t2.
|
|
replace into t1 select * from t2;
|
|
|
|
connection b;
|
|
set session transaction isolation level read committed;
|
|
set autocommit=0;
|
|
# should not cuase a lock wait.
|
|
delete from t2 where a=5;
|
|
commit;
|
|
delete from t2;
|
|
commit;
|
|
connection a;
|
|
commit;
|
|
|
|
# INSERT INTO ... SELECT case
|
|
begin;
|
|
# this should not result in any locks on t2.
|
|
insert into t1 select * from t2;
|
|
|
|
connection b;
|
|
set session transaction isolation level read committed;
|
|
set autocommit=0;
|
|
# should not cuase a lock wait.
|
|
delete from t2 where a=5;
|
|
commit;
|
|
delete from t2;
|
|
commit;
|
|
connection a;
|
|
commit;
|
|
|
|
select * from t1;
|
|
drop table t1;
|
|
drop table t2;
|
|
|
|
connection default;
|
|
disconnect a;
|
|
disconnect b;
|