]> granicus.if.org Git - postgresql/commitdiff
Improve regression test for #8410.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 31 Aug 2013 01:40:21 +0000 (21:40 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 31 Aug 2013 01:40:49 +0000 (21:40 -0400)
The previous version of the query disregarded the result of the MergeAppend
instead of checking its results.

Andres Freund

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

index 8520281f750b8a90a3bad418390ad55b09951e69..a2ef7ef7cd3c4e93395196bc875f215d2d572e14 100644 (file)
@@ -1353,42 +1353,41 @@ ORDER BY x, y;
 -- exercise rescan code path via a repeatedly-evaluated subquery
 explain (costs off)
 SELECT
-    (SELECT g.i FROM (
-        (SELECT * FROM generate_series(1, 2) ORDER BY 1)
+    ARRAY(SELECT f.i FROM (
+        (SELECT d + g.i FROM generate_series(4, 30, 3) d ORDER BY 1)
         UNION ALL
-        (SELECT * FROM generate_series(1, 2) ORDER BY 1)
+        (SELECT d + g.i FROM generate_series(0, 30, 5) d ORDER BY 1)
     ) f(i)
-    ORDER BY f.i LIMIT 1)
+    ORDER BY f.i LIMIT 10)
 FROM generate_series(1, 3) g(i);
-                                     QUERY PLAN                                     
-------------------------------------------------------------------------------------
+                           QUERY PLAN                           
+----------------------------------------------------------------
  Function Scan on generate_series g
    SubPlan 1
      ->  Limit
-           ->  Result
-                 ->  Merge Append
-                       Sort Key: generate_series.generate_series
-                       ->  Sort
-                             Sort Key: generate_series.generate_series
-                             ->  Function Scan on generate_series
-                       ->  Sort
-                             Sort Key: generate_series_1.generate_series
-                             ->  Function Scan on generate_series generate_series_1
-(12 rows)
+           ->  Merge Append
+                 Sort Key: ((d.d + g.i))
+                 ->  Sort
+                       Sort Key: ((d.d + g.i))
+                       ->  Function Scan on generate_series d
+                 ->  Sort
+                       Sort Key: ((d_1.d + g.i))
+                       ->  Function Scan on generate_series d_1
+(11 rows)
 
 SELECT
-    (SELECT g.i FROM (
-        (SELECT * FROM generate_series(1, 2) ORDER BY 1)
+    ARRAY(SELECT f.i FROM (
+        (SELECT d + g.i FROM generate_series(4, 30, 3) d ORDER BY 1)
         UNION ALL
-        (SELECT * FROM generate_series(1, 2) ORDER BY 1)
+        (SELECT d + g.i FROM generate_series(0, 30, 5) d ORDER BY 1)
     ) f(i)
-    ORDER BY f.i LIMIT 1)
+    ORDER BY f.i LIMIT 10)
 FROM generate_series(1, 3) g(i);
- i 
----
- 1
- 2
- 3
+            array             
+------------------------------
+ {1,5,6,8,11,11,14,16,17,20}
+ {2,6,7,9,12,12,15,17,18,21}
+ {3,7,8,10,13,13,16,18,19,22}
 (3 rows)
 
 reset enable_seqscan;
index e88a5847b928464ad1cce8ec75a0248b04e9f23c..86376554b01237695a490e2b34415f293aef9be4 100644 (file)
@@ -442,21 +442,21 @@ ORDER BY x, y;
 -- exercise rescan code path via a repeatedly-evaluated subquery
 explain (costs off)
 SELECT
-    (SELECT g.i FROM (
-        (SELECT * FROM generate_series(1, 2) ORDER BY 1)
+    ARRAY(SELECT f.i FROM (
+        (SELECT d + g.i FROM generate_series(4, 30, 3) d ORDER BY 1)
         UNION ALL
-        (SELECT * FROM generate_series(1, 2) ORDER BY 1)
+        (SELECT d + g.i FROM generate_series(0, 30, 5) d ORDER BY 1)
     ) f(i)
-    ORDER BY f.i LIMIT 1)
+    ORDER BY f.i LIMIT 10)
 FROM generate_series(1, 3) g(i);
 
 SELECT
-    (SELECT g.i FROM (
-        (SELECT * FROM generate_series(1, 2) ORDER BY 1)
+    ARRAY(SELECT f.i FROM (
+        (SELECT d + g.i FROM generate_series(4, 30, 3) d ORDER BY 1)
         UNION ALL
-        (SELECT * FROM generate_series(1, 2) ORDER BY 1)
+        (SELECT d + g.i FROM generate_series(0, 30, 5) d ORDER BY 1)
     ) f(i)
-    ORDER BY f.i LIMIT 1)
+    ORDER BY f.i LIMIT 10)
 FROM generate_series(1, 3) g(i);
 
 reset enable_seqscan;