317 lines
5.3 KiB
Plaintext
317 lines
5.3 KiB
Plaintext
Parsed test spec with 2 sessions
|
|
|
|
starting permutation: lock assign1 vacuum unlock
|
|
pg_advisory_unlock_all
|
|
----------------------
|
|
|
|
(1 row)
|
|
|
|
pg_advisory_unlock_all
|
|
----------------------
|
|
|
|
(1 row)
|
|
|
|
step lock:
|
|
SELECT pg_advisory_lock(1);
|
|
|
|
pg_advisory_lock
|
|
----------------
|
|
|
|
(1 row)
|
|
|
|
step assign1:
|
|
do $$
|
|
declare
|
|
x text;
|
|
begin
|
|
select test1.b into x from test1;
|
|
delete from test1;
|
|
commit;
|
|
perform pg_advisory_lock(1);
|
|
raise notice 'length(x) = %', length(x);
|
|
end;
|
|
$$;
|
|
<waiting ...>
|
|
step vacuum:
|
|
VACUUM test1;
|
|
|
|
step unlock:
|
|
SELECT pg_advisory_unlock(1);
|
|
|
|
pg_advisory_unlock
|
|
------------------
|
|
t
|
|
(1 row)
|
|
|
|
s1: NOTICE: length(x) = 6000
|
|
step assign1: <... completed>
|
|
|
|
starting permutation: lock assign2 vacuum unlock
|
|
pg_advisory_unlock_all
|
|
----------------------
|
|
|
|
(1 row)
|
|
|
|
pg_advisory_unlock_all
|
|
----------------------
|
|
|
|
(1 row)
|
|
|
|
step lock:
|
|
SELECT pg_advisory_lock(1);
|
|
|
|
pg_advisory_lock
|
|
----------------
|
|
|
|
(1 row)
|
|
|
|
step assign2:
|
|
do $$
|
|
declare
|
|
x text;
|
|
begin
|
|
x := (select test1.b from test1);
|
|
delete from test1;
|
|
commit;
|
|
perform pg_advisory_lock(1);
|
|
raise notice 'length(x) = %', length(x);
|
|
end;
|
|
$$;
|
|
<waiting ...>
|
|
step vacuum:
|
|
VACUUM test1;
|
|
|
|
step unlock:
|
|
SELECT pg_advisory_unlock(1);
|
|
|
|
pg_advisory_unlock
|
|
------------------
|
|
t
|
|
(1 row)
|
|
|
|
s1: NOTICE: length(x) = 6000
|
|
step assign2: <... completed>
|
|
|
|
starting permutation: lock assign3 vacuum unlock
|
|
pg_advisory_unlock_all
|
|
----------------------
|
|
|
|
(1 row)
|
|
|
|
pg_advisory_unlock_all
|
|
----------------------
|
|
|
|
(1 row)
|
|
|
|
step lock:
|
|
SELECT pg_advisory_lock(1);
|
|
|
|
pg_advisory_lock
|
|
----------------
|
|
|
|
(1 row)
|
|
|
|
step assign3:
|
|
do $$
|
|
declare
|
|
r record;
|
|
begin
|
|
select * into r from test1;
|
|
r.b := (select test1.b from test1);
|
|
delete from test1;
|
|
commit;
|
|
perform pg_advisory_lock(1);
|
|
raise notice 'length(r) = %', length(r::text);
|
|
end;
|
|
$$;
|
|
<waiting ...>
|
|
step vacuum:
|
|
VACUUM test1;
|
|
|
|
step unlock:
|
|
SELECT pg_advisory_unlock(1);
|
|
|
|
pg_advisory_unlock
|
|
------------------
|
|
t
|
|
(1 row)
|
|
|
|
s1: NOTICE: length(r) = 6004
|
|
step assign3: <... completed>
|
|
|
|
starting permutation: lock assign4 vacuum unlock
|
|
pg_advisory_unlock_all
|
|
----------------------
|
|
|
|
(1 row)
|
|
|
|
pg_advisory_unlock_all
|
|
----------------------
|
|
|
|
(1 row)
|
|
|
|
step lock:
|
|
SELECT pg_advisory_lock(1);
|
|
|
|
pg_advisory_lock
|
|
----------------
|
|
|
|
(1 row)
|
|
|
|
step assign4:
|
|
do $$
|
|
declare
|
|
r test2;
|
|
begin
|
|
select * into r from test1;
|
|
delete from test1;
|
|
commit;
|
|
perform pg_advisory_lock(1);
|
|
raise notice 'length(r) = %', length(r::text);
|
|
end;
|
|
$$;
|
|
<waiting ...>
|
|
step vacuum:
|
|
VACUUM test1;
|
|
|
|
step unlock:
|
|
SELECT pg_advisory_unlock(1);
|
|
|
|
pg_advisory_unlock
|
|
------------------
|
|
t
|
|
(1 row)
|
|
|
|
s1: NOTICE: length(r) = 6004
|
|
step assign4: <... completed>
|
|
|
|
starting permutation: lock assign5 vacuum unlock
|
|
pg_advisory_unlock_all
|
|
----------------------
|
|
|
|
(1 row)
|
|
|
|
pg_advisory_unlock_all
|
|
----------------------
|
|
|
|
(1 row)
|
|
|
|
step lock:
|
|
SELECT pg_advisory_lock(1);
|
|
|
|
pg_advisory_lock
|
|
----------------
|
|
|
|
(1 row)
|
|
|
|
step assign5:
|
|
do $$
|
|
declare
|
|
r record;
|
|
begin
|
|
for r in select test1.b from test1 loop
|
|
null;
|
|
end loop;
|
|
delete from test1;
|
|
commit;
|
|
perform pg_advisory_lock(1);
|
|
raise notice 'length(r) = %', length(r::text);
|
|
end;
|
|
$$;
|
|
<waiting ...>
|
|
step vacuum:
|
|
VACUUM test1;
|
|
|
|
step unlock:
|
|
SELECT pg_advisory_unlock(1);
|
|
|
|
pg_advisory_unlock
|
|
------------------
|
|
t
|
|
(1 row)
|
|
|
|
s1: NOTICE: length(r) = 6002
|
|
step assign5: <... completed>
|
|
|
|
starting permutation: lock assign6 vacuum unlock
|
|
pg_advisory_unlock_all
|
|
----------------------
|
|
|
|
(1 row)
|
|
|
|
pg_advisory_unlock_all
|
|
----------------------
|
|
|
|
(1 row)
|
|
|
|
step lock:
|
|
SELECT pg_advisory_lock(1);
|
|
|
|
pg_advisory_lock
|
|
----------------
|
|
|
|
(1 row)
|
|
|
|
step assign6:
|
|
do $$
|
|
declare
|
|
r record;
|
|
begin
|
|
insert into test1 values (2, repeat('bar', 3000));
|
|
insert into test1 values (3, repeat('baz', 4000));
|
|
for r in select test1.b from test1 loop
|
|
delete from test1;
|
|
commit;
|
|
perform pg_advisory_lock(1);
|
|
raise notice 'length(r) = %', length(r::text);
|
|
end loop;
|
|
end;
|
|
$$;
|
|
<waiting ...>
|
|
step vacuum:
|
|
VACUUM test1;
|
|
|
|
step unlock:
|
|
SELECT pg_advisory_unlock(1);
|
|
|
|
pg_advisory_unlock
|
|
------------------
|
|
t
|
|
(1 row)
|
|
|
|
s1: NOTICE: length(r) = 6002
|
|
s1: NOTICE: length(r) = 9002
|
|
s1: NOTICE: length(r) = 12002
|
|
step assign6: <... completed>
|
|
|
|
starting permutation: fetch-after-commit
|
|
pg_advisory_unlock_all
|
|
----------------------
|
|
|
|
(1 row)
|
|
|
|
pg_advisory_unlock_all
|
|
----------------------
|
|
|
|
(1 row)
|
|
|
|
s1: NOTICE: length(t) = 6000
|
|
s1: NOTICE: length(t) = 9000
|
|
s1: NOTICE: length(t) = 12000
|
|
step fetch-after-commit:
|
|
do $$
|
|
declare
|
|
r record;
|
|
t text;
|
|
begin
|
|
insert into test1 values (2, repeat('bar', 3000));
|
|
insert into test1 values (3, repeat('baz', 4000));
|
|
for r in select test1.a from test1 loop
|
|
commit;
|
|
select b into t from test1 where a = r.a;
|
|
raise notice 'length(t) = %', length(t);
|
|
end loop;
|
|
end;
|
|
$$;
|
|
|