# 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