File tree Expand file tree Collapse file tree 2 files changed +61
-0
lines changed Expand file tree Collapse file tree 2 files changed +61
-0
lines changed Original file line number Diff line number Diff line change @@ -1350,6 +1350,47 @@ ORDER BY x, y;
13501350 -> Index Only Scan using tenk1_unique2 on tenk1 b
13511351(6 rows)
13521352
1353+ -- exercise rescan code path via a repeatedly-evaluated subquery
1354+ explain (costs off)
1355+ SELECT
1356+ (SELECT g.i FROM (
1357+ (SELECT * FROM generate_series(1, 2) ORDER BY 1)
1358+ UNION ALL
1359+ (SELECT * FROM generate_series(1, 2) ORDER BY 1)
1360+ ) f(i)
1361+ ORDER BY f.i LIMIT 1)
1362+ FROM generate_series(1, 3) g(i);
1363+ QUERY PLAN
1364+ ------------------------------------------------------------------------------------
1365+ Function Scan on generate_series g
1366+ SubPlan 1
1367+ -> Limit
1368+ -> Result
1369+ -> Merge Append
1370+ Sort Key: generate_series.generate_series
1371+ -> Sort
1372+ Sort Key: generate_series.generate_series
1373+ -> Function Scan on generate_series
1374+ -> Sort
1375+ Sort Key: generate_series_1.generate_series
1376+ -> Function Scan on generate_series generate_series_1
1377+ (12 rows)
1378+
1379+ SELECT
1380+ (SELECT g.i FROM (
1381+ (SELECT * FROM generate_series(1, 2) ORDER BY 1)
1382+ UNION ALL
1383+ (SELECT * FROM generate_series(1, 2) ORDER BY 1)
1384+ ) f(i)
1385+ ORDER BY f.i LIMIT 1)
1386+ FROM generate_series(1, 3) g(i);
1387+ i
1388+ ---
1389+ 1
1390+ 2
1391+ 3
1392+ (3 rows)
1393+
13531394reset enable_seqscan;
13541395reset enable_indexscan;
13551396reset enable_bitmapscan;
Original file line number Diff line number Diff line change @@ -439,6 +439,26 @@ SELECT x, y FROM
439439 SELECT unique2 AS x, unique2 AS y FROM tenk1 b) s
440440ORDER BY x, y;
441441
442+ -- exercise rescan code path via a repeatedly-evaluated subquery
443+ explain (costs off)
444+ SELECT
445+ (SELECT g .i FROM (
446+ (SELECT * FROM generate_series(1 , 2 ) ORDER BY 1 )
447+ UNION ALL
448+ (SELECT * FROM generate_series(1 , 2 ) ORDER BY 1 )
449+ ) f(i)
450+ ORDER BY f .i LIMIT 1 )
451+ FROM generate_series(1 , 3 ) g(i);
452+
453+ SELECT
454+ (SELECT g .i FROM (
455+ (SELECT * FROM generate_series(1 , 2 ) ORDER BY 1 )
456+ UNION ALL
457+ (SELECT * FROM generate_series(1 , 2 ) ORDER BY 1 )
458+ ) f(i)
459+ ORDER BY f .i LIMIT 1 )
460+ FROM generate_series(1 , 3 ) g(i);
461+
442462reset enable_seqscan;
443463reset enable_indexscan;
444464reset enable_bitmapscan;
You can’t perform that action at this time.
0 commit comments