pgsql: Selectively include window frames in expression walks/mutates.

Поиск
Список
Период
Сортировка
От Andrew Gierth
Тема pgsql: Selectively include window frames in expression walks/mutates.
Дата
Msg-id E1iFyj6-0003Nx-NC@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Selectively include window frames in expression walks/mutates.

query_tree_walker and query_tree_mutator were skipping the
windowClause of the query, without regard for the fact that the
startOffset and endOffset in a WindowClause node are expression trees
that need to be processed. This was an oversight in commit ec4be2ee6
from 2010 which added the expression fields; the main symptom is that
function parameters in window frame clauses don't work in inlined
functions.

Fix (as conservatively as possible since this needs to not break
existing out-of-tree callers) and add tests.

Backpatch all the way, since this has been broken since 9.0.

Per report from Alastair McKinley; fix by me with kibitzing and review
from Tom Lane.

Discussion: https://postgr.es/m/DB6PR0202MB2904E7FDDA9D81504D1E8C68E3800@DB6PR0202MB2904.eurprd02.prod.outlook.com

Branch
------
REL_12_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/0b11dc01922b0f6376a27f84a34a52451e8f476c

Modified Files
--------------
src/backend/catalog/dependency.c     |   9 +--
src/backend/nodes/nodeFuncs.c        | 105 +++++++++++++++++++++++++++++++++++
src/include/nodes/nodeFuncs.h        |   1 +
src/test/regress/expected/window.out |  42 ++++++++++++++
src/test/regress/sql/window.sql      |  19 +++++++
5 files changed, 169 insertions(+), 7 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: pgsql: pgbench: add --partitions and --partition-method options.
Следующее
От: Robert Haas
Дата:
Сообщение: Re: pgsql: Implement jsonpath .datetime() method