提交 ac2d0e46 编写于 作者: T Tom Lane

Add test case for bug #8410.

Per Andres Freund.
上级 8e2b71d2
......@@ -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;
......@@ -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;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册