diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/window.out | 19 | ||||
| -rw-r--r-- | src/test/regress/sql/window.sql | 10 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/test/regress/expected/window.out b/src/test/regress/expected/window.out index d78b4c463cf..433a0bb0259 100644 --- a/src/test/regress/expected/window.out +++ b/src/test/regress/expected/window.out @@ -3589,6 +3589,25 @@ WHERE rn < 3; 3 | sales | 2 (6 rows) +-- ensure that "unused" subquery columns are not removed when the column only +-- exists in the run condition +EXPLAIN (COSTS OFF) +SELECT empno, depname FROM + (SELECT empno, + depname, + row_number() OVER (PARTITION BY depname ORDER BY empno) rn + FROM empsalary) emp +WHERE rn < 3; + QUERY PLAN +------------------------------------------------------------ + Subquery Scan on emp + -> WindowAgg + Run Condition: (row_number() OVER (?) < 3) + -> Sort + Sort Key: empsalary.depname, empsalary.empno + -> Seq Scan on empsalary +(6 rows) + -- likewise with count(empno) instead of row_number() EXPLAIN (COSTS OFF) SELECT * FROM diff --git a/src/test/regress/sql/window.sql b/src/test/regress/sql/window.sql index 967b9413de6..a504e46e403 100644 --- a/src/test/regress/sql/window.sql +++ b/src/test/regress/sql/window.sql @@ -1121,6 +1121,16 @@ SELECT * FROM FROM empsalary) emp WHERE rn < 3; +-- ensure that "unused" subquery columns are not removed when the column only +-- exists in the run condition +EXPLAIN (COSTS OFF) +SELECT empno, depname FROM + (SELECT empno, + depname, + row_number() OVER (PARTITION BY depname ORDER BY empno) rn + FROM empsalary) emp +WHERE rn < 3; + -- likewise with count(empno) instead of row_number() EXPLAIN (COSTS OFF) SELECT * FROM |
