pgsql: Implement the FILTER clause for aggregate function calls.
От | Noah Misch |
---|---|
Тема | pgsql: Implement the FILTER clause for aggregate function calls. |
Дата | |
Msg-id | E1UzFcD-0004m2-7L@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Implement the FILTER clause for aggregate function calls. This is SQL-standard with a few extensions, namely support for subqueries and outer references in clause expressions. catversion bump due to change in Aggref and WindowFunc. David Fetter, reviewed by Dean Rasheed. Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/b560ec1b0d7b910ce13edc51ffaafaca72136e3b Modified Files -------------- contrib/pg_stat_statements/pg_stat_statements.c | 2 + doc/src/sgml/keywords.sgml | 2 +- doc/src/sgml/ref/select.sgml | 5 ++ doc/src/sgml/syntax.sgml | 48 ++++++++---- src/backend/executor/execQual.c | 4 + src/backend/executor/execUtils.c | 6 +- src/backend/executor/functions.c | 2 +- src/backend/executor/nodeAgg.c | 13 ++++ src/backend/executor/nodeWindowAgg.c | 14 ++++ src/backend/nodes/copyfuncs.c | 3 + src/backend/nodes/equalfuncs.c | 3 + src/backend/nodes/makefuncs.c | 1 + src/backend/nodes/nodeFuncs.c | 8 ++ src/backend/nodes/outfuncs.c | 3 + src/backend/nodes/readfuncs.c | 2 + src/backend/optimizer/path/costsize.c | 8 ++ src/backend/optimizer/plan/planagg.c | 6 ++ src/backend/optimizer/util/clauses.c | 15 +++- src/backend/parser/gram.y | 16 +++- src/backend/parser/parse_agg.c | 29 ++++--- src/backend/parser/parse_collate.c | 22 ++++++ src/backend/parser/parse_expr.c | 24 +++++- src/backend/parser/parse_func.c | 30 +++++-- src/backend/utils/adt/ruleutils.c | 14 ++++ src/include/catalog/catversion.h | 2 +- src/include/nodes/execnodes.h | 2 + src/include/nodes/parsenodes.h | 5 +- src/include/nodes/primnodes.h | 2 + src/include/parser/kwlist.h | 1 + src/include/parser/parse_func.h | 7 +- src/include/parser/parse_node.h | 1 + src/test/regress/expected/aggregates.out | 95 +++++++++++++++++++++++ src/test/regress/expected/window.out | 13 ++++ src/test/regress/sql/aggregates.sql | 38 +++++++++ src/test/regress/sql/window.sql | 8 ++ 35 files changed, 403 insertions(+), 51 deletions(-)
В списке pgsql-committers по дате отправления: