]> granicus.if.org Git - postgresql/commitdiff
Repair test for vacuum reltuples fix.
authorAndrew Gierth <rhodiumtoad@postgresql.org>
Fri, 17 Mar 2017 14:35:54 +0000 (14:35 +0000)
committerAndrew Gierth <rhodiumtoad@postgresql.org>
Fri, 17 Mar 2017 14:46:15 +0000 (14:46 +0000)
Concurrent auto-analyze could be holding a snapshot, affecting the
removal of deleted row versions.  Remove the deletion to avoid this
happening.  Per buildfarm.

In passing, make the test independent of assumptions of physical row
order, just out of sheer paranoia.

src/test/isolation/expected/vacuum-reltuples.out
src/test/isolation/specs/vacuum-reltuples.spec

index ee3adf580509b87862dc38c5a923bcbf3d81c930..337b7ab2528809e2e4b5568ab16ff963b5dfe20c 100644 (file)
@@ -3,7 +3,6 @@ Parsed test spec with 2 sessions
 starting permutation: modify vac stats
 step modify: 
     insert into smalltbl select max(id)+1 from smalltbl;
-    delete from smalltbl where id in (select min(id) from smalltbl);
 
 step vac: 
     vacuum smalltbl;
@@ -14,23 +13,22 @@ step stats:
 
 relpages       reltuples      
 
-1              20             
+1              21             
 
 starting permutation: modify open fetch1 vac close stats
 step modify: 
     insert into smalltbl select max(id)+1 from smalltbl;
-    delete from smalltbl where id in (select min(id) from smalltbl);
 
 step open: 
     begin;
-    declare c1 cursor for select * from smalltbl;
+    declare c1 cursor for select 1 as dummy from smalltbl;
 
 step fetch1: 
     fetch next from c1;
 
-id             
+dummy          
 
-2              
+1              
 step vac: 
     vacuum smalltbl;
 
@@ -48,7 +46,6 @@ relpages       reltuples
 starting permutation: modify vac stats
 step modify: 
     insert into smalltbl select max(id)+1 from smalltbl;
-    delete from smalltbl where id in (select min(id) from smalltbl);
 
 step vac: 
     vacuum smalltbl;
@@ -59,4 +56,4 @@ step stats:
 
 relpages       reltuples      
 
-1              20             
+1              21             
index 52bc405547adb85b05735edcd0005b8ce25c5abc..6d9fa010b3c0ac55a391e914eaa7d1c7fb3ee5d2 100644 (file)
@@ -1,6 +1,10 @@
 # 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
@@ -18,7 +22,7 @@ teardown {
 session "worker"
 step "open" {
     begin;
-    declare c1 cursor for select * from smalltbl;
+    declare c1 cursor for select 1 as dummy from smalltbl;
 }
 step "fetch1" {
     fetch next from c1;
@@ -37,7 +41,6 @@ step "vac" {
 }
 step "modify" {
     insert into smalltbl select max(id)+1 from smalltbl;
-    delete from smalltbl where id in (select min(id) from smalltbl);
 }
 
 permutation "modify" "vac" "stats"