pgsql: Calculate agglevelsup correctly when Aggref contains a CTE.
| От | Tom Lane |
|---|---|
| Тема | pgsql: Calculate agglevelsup correctly when Aggref contains a CTE. |
| Дата | |
| Msg-id | E1uyypy-001Dun-16@gemulon.postgresql.org обсуждение исходный текст |
| Список | pgsql-committers |
Calculate agglevelsup correctly when Aggref contains a CTE. If an aggregate function call contains a sub-select that has an RTE referencing a CTE outside the aggregate, we must treat that reference like a Var referencing the CTE's query level for purposes of determining the aggregate's level. Otherwise we might reach the nonsensical conclusion that the aggregate should be evaluated at some query level higher than the CTE, ending in a planner error or a broken plan tree that causes executor failures. Bug: #19055 Reported-by: BugForge <dllggyx@outlook.com> Author: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/19055-6970cfa8556a394d@postgresql.org Backpatch-through: 13 Branch ------ REL_14_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/31bf0963208f1a5121a81aa7c17b4e55bfdc5596 Modified Files -------------- src/backend/parser/parse_agg.c | 28 +++++++++++++++++++++++++++- src/test/regress/expected/with.out | 34 ++++++++++++++++++++++++++++++++++ src/test/regress/sql/with.sql | 14 ++++++++++++++ 3 files changed, 75 insertions(+), 1 deletion(-)
В списке pgsql-committers по дате отправления: