blob: ae2f79b8fe89a7774236436482cff26ad12b1d48 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# Test for vacuum's handling of reltuples when pages are skipped due
# to page pins. We absolutely need to avoid setting reltuples=0 in
# such cases, since that interferes badly with planning.
#
# Expected result in second permutation is 20 tuples rather than 21 as
# for the others, because vacuum should leave the previous result
# (from before the insert) in place.
setup {
create table smalltbl
as select i as id from generate_series(1,20) i;
alter table smalltbl set (autovacuum_enabled = off);
}
setup {
vacuum analyze smalltbl;
}
teardown {
drop table smalltbl;
}
session worker
step open {
begin;
declare c1 cursor for select 1 as dummy from smalltbl;
}
step fetch1 {
fetch next from c1;
}
step close {
commit;
}
step stats {
select relpages, reltuples from pg_class
where oid='smalltbl'::regclass;
}
session vacuumer
step vac {
vacuum smalltbl;
}
step modify {
insert into smalltbl select max(id)+1 from smalltbl;
}
permutation modify vac stats
permutation modify open fetch1 vac close stats
permutation modify vac stats
|