diff options
Diffstat (limited to 'src/test/regress/expected/window.out')
| -rw-r--r-- | src/test/regress/expected/window.out | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/src/test/regress/expected/window.out b/src/test/regress/expected/window.out index 747608e3c14..1d4b78b9b27 100644 --- a/src/test/regress/expected/window.out +++ b/src/test/regress/expected/window.out @@ -3844,29 +3844,44 @@ WHERE 3 <= c; -> Seq Scan on empsalary (6 rows) --- Ensure we don't pushdown when there are multiple window clauses to evaluate +-- Ensure we don't use a run condition when there's a volatile function in the +-- WindowFunc EXPLAIN (COSTS OFF) SELECT * FROM (SELECT empno, salary, - count(*) OVER (ORDER BY empno DESC) c, - dense_rank() OVER (ORDER BY salary DESC) dr + count(random()) OVER (ORDER BY empno DESC) c FROM empsalary) emp -WHERE dr = 1; - QUERY PLAN ------------------------------------------------------------------ +WHERE c = 1; + QUERY PLAN +---------------------------------------------- Subquery Scan on emp - Filter: (emp.dr = 1) + Filter: (emp.c = 1) -> WindowAgg - Filter: ((dense_rank() OVER (?)) <= 1) -> Sort Sort Key: empsalary.empno DESC - -> WindowAgg - Run Condition: (dense_rank() OVER (?) <= 1) - -> Sort - Sort Key: empsalary.salary DESC - -> Seq Scan on empsalary -(11 rows) + -> Seq Scan on empsalary +(6 rows) + +-- Ensure we don't use a run condition when the WindowFunc contains subplans +EXPLAIN (COSTS OFF) +SELECT * FROM + (SELECT empno, + salary, + count((SELECT 1)) OVER (ORDER BY empno DESC) c + FROM empsalary) emp +WHERE c = 1; + QUERY PLAN +---------------------------------------------- + Subquery Scan on emp + Filter: (emp.c = 1) + -> WindowAgg + InitPlan 1 (returns $0) + -> Result + -> Sort + Sort Key: empsalary.empno DESC + -> Seq Scan on empsalary +(8 rows) -- Test Sort node collapsing EXPLAIN (COSTS OFF) |
