aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2013-08-30 19:27:40 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2013-08-30 19:27:47 -0400
commitce58aad2ba13885e2c5fa50e31ee5945e883096b (patch)
treedcde91ffeeb05389b8aea2d56c357d4447e6ac6a
parent16e8e36cebba8909ec01ca259f32e8dd40090657 (diff)
downloadpostgresql-ce58aad2ba13885e2c5fa50e31ee5945e883096b.tar.gz
postgresql-ce58aad2ba13885e2c5fa50e31ee5945e883096b.zip
Add test case for bug #8410.
Per Andres Freund.
-rw-r--r--src/test/regress/expected/inherit.out41
-rw-r--r--src/test/regress/sql/inherit.sql20
2 files changed, 61 insertions, 0 deletions
diff --git a/src/test/regress/expected/inherit.out b/src/test/regress/expected/inherit.out
index cc3670bd914..8520281f750 100644
--- a/src/test/regress/expected/inherit.out
+++ b/src/test/regress/expected/inherit.out
@@ -1350,6 +1350,47 @@ ORDER BY x, y;
-> Index Only Scan using tenk1_unique2 on tenk1 b
(6 rows)
+-- 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)
+ UNION ALL
+ (SELECT * FROM generate_series(1, 2) ORDER BY 1)
+ ) f(i)
+ ORDER BY f.i LIMIT 1)
+FROM generate_series(1, 3) g(i);
+ 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)
+
+SELECT
+ (SELECT g.i FROM (
+ (SELECT * FROM generate_series(1, 2) ORDER BY 1)
+ UNION ALL
+ (SELECT * FROM generate_series(1, 2) ORDER BY 1)
+ ) f(i)
+ ORDER BY f.i LIMIT 1)
+FROM generate_series(1, 3) g(i);
+ i
+---
+ 1
+ 2
+ 3
+(3 rows)
+
reset enable_seqscan;
reset enable_indexscan;
reset enable_bitmapscan;
diff --git a/src/test/regress/sql/inherit.sql b/src/test/regress/sql/inherit.sql
index 29c1e59fd0a..e88a5847b92 100644
--- a/src/test/regress/sql/inherit.sql
+++ b/src/test/regress/sql/inherit.sql
@@ -439,6 +439,26 @@ SELECT x, y FROM
SELECT unique2 AS x, unique2 AS y FROM tenk1 b) s
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)
+ UNION ALL
+ (SELECT * FROM generate_series(1, 2) ORDER BY 1)
+ ) f(i)
+ ORDER BY f.i LIMIT 1)
+FROM generate_series(1, 3) g(i);
+
+SELECT
+ (SELECT g.i FROM (
+ (SELECT * FROM generate_series(1, 2) ORDER BY 1)
+ UNION ALL
+ (SELECT * FROM generate_series(1, 2) ORDER BY 1)
+ ) f(i)
+ ORDER BY f.i LIMIT 1)
+FROM generate_series(1, 3) g(i);
+
reset enable_seqscan;
reset enable_indexscan;
reset enable_bitmapscan;