Files
openGauss-server/src/test/regress/sql/test_astore_multixact.sql
2023-04-27 21:13:07 +08:00

113 lines
1.9 KiB
SQL

drop table if exists astore_mult1;
drop table if exists astore_mult2;
create table astore_mult1 (a int primary key, b int);
create table astore_mult2 (c int , d int);
alter table astore_mult2 add foreign key (c) references astore_mult1 (a);
insert into astore_mult1 values (1, 1);
insert into astore_mult2 values (1, 1);
\parallel on 2
begin
PERFORM * from astore_mult1 where a = 1 for key share;
perform pg_sleep(1.5);
end;
/
begin
perform pg_sleep(0.5);
PERFORM * from astore_mult1 where a = 1 for no key update;
end;
/
\parallel off
\parallel on 2
begin
PERFORM * from astore_mult1 where a = 1 for key share;
perform pg_sleep(1.5);
end;
/
begin
perform pg_sleep(0.5);
PERFORM * from astore_mult1 where a = 1 for key share;
end;
/
\parallel off
\parallel on 2
begin
PERFORM * from astore_mult1 where a = 1 for key share;
perform pg_sleep(1.5);
end;
/
begin
perform pg_sleep(0.5);
PERFORM * from astore_mult1 where a = 1 for share;
end;
/
\parallel off
\parallel on 2
begin
PERFORM * from astore_mult1 where a = 1 for share;
perform pg_sleep(1.5);
end;
/
begin
perform pg_sleep(0.5);
PERFORM * from astore_mult1 where a = 1 for share;
end;
/
\parallel off
\parallel on 2
begin
update astore_mult1 set b = 2 where a = 1;
perform pg_sleep(1.5);
end;
/
begin
update astore_mult2 set d = 2 where c = 1;
update astore_mult2 set d = 2 where c = 1;
end;
/
\parallel off
\parallel on 2
begin
update astore_mult1 set b = 2 where a = 1;
perform pg_sleep(1.5);
end;
/
begin
PERFORM * from astore_mult1 where a = 1 for key share;
end;
/
\parallel off
insert into astore_mult1 values (2, 2);
\parallel on 2
begin
perform * from astore_mult1 where a = 2 for key share;
perform pg_sleep(1);
delete from astore_mult1 where a = 2;
end;
/
begin
update astore_mult1 set b = 2 where a = 2;
perform pg_sleep(2);
end;
/
\parallel off
vacuum freeze astore_mult1;
vacuum freeze astore_mult2;
drop table astore_mult2;
drop table astore_mult1;