Tweak new regression test case for better portability.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 5 Jun 2014 01:31:41 +0000 (21:31 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 5 Jun 2014 01:31:41 +0000 (21:31 -0400)
Buildfarm says we get different plans on 32-bit and 64-bit platforms,
probably because of MAXALIGN-related differences in memory-consumption
calculations.  Add some dummy WHERE clauses so that the planner estimates
different sizes for the three generate_series() relations; that should
stabilize the choice of join order.

src/test/regress/expected/pg_lsn.out
src/test/regress/sql/pg_lsn.sql

index 493eb9ea84083f9a042c93bb98ef79f53b563ff7..2854cfd7b9487b6bbf9f12cdb27fb56a763ad29f 100644 (file)
@@ -70,6 +70,7 @@ SELECT DISTINCT (i || '/' || j)::pg_lsn f
   FROM generate_series(1, 10) i,
        generate_series(1, 10) j,
        generate_series(1, 5) k
+  WHERE i <= 10 AND j > 0 AND j <= 10
   ORDER BY f;
                                 QUERY PLAN                                
 --------------------------------------------------------------------------
@@ -81,14 +82,17 @@ SELECT DISTINCT (i || '/' || j)::pg_lsn f
                ->  Function Scan on generate_series k
                ->  Materialize
                      ->  Nested Loop
-                           ->  Function Scan on generate_series i
                            ->  Function Scan on generate_series j
-(10 rows)
+                                 Filter: ((j > 0) AND (j <= 10))
+                           ->  Function Scan on generate_series i
+                                 Filter: (i <= 10)
+(12 rows)
 
 SELECT DISTINCT (i || '/' || j)::pg_lsn f
   FROM generate_series(1, 10) i,
        generate_series(1, 10) j,
        generate_series(1, 5) k
+  WHERE i <= 10 AND j > 0 AND j <= 10
   ORDER BY f;
    f   
 -------
index a3da0f15796b4acbad3ba8579e4af7933544a10d..746f720d6901f464d5981a97345b4df06f926b2b 100644 (file)
@@ -30,10 +30,12 @@ SELECT DISTINCT (i || '/' || j)::pg_lsn f
   FROM generate_series(1, 10) i,
        generate_series(1, 10) j,
        generate_series(1, 5) k
+  WHERE i <= 10 AND j > 0 AND j <= 10
   ORDER BY f;
 
 SELECT DISTINCT (i || '/' || j)::pg_lsn f
   FROM generate_series(1, 10) i,
        generate_series(1, 10) j,
        generate_series(1, 5) k
+  WHERE i <= 10 AND j > 0 AND j <= 10
   ORDER BY f;