mirror of
https://github.com/postgres/postgres.git
synced 2025-11-06 07:49:08 +03:00
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.
This commit is contained in:
@@ -155,6 +155,7 @@ PG_KEYWORD("extract", EXTRACT, COL_NAME_KEYWORD)
|
||||
PG_KEYWORD("false", FALSE_P, RESERVED_KEYWORD)
|
||||
PG_KEYWORD("family", FAMILY, UNRESERVED_KEYWORD)
|
||||
PG_KEYWORD("fetch", FETCH, RESERVED_KEYWORD)
|
||||
PG_KEYWORD("filter", FILTER, UNRESERVED_KEYWORD)
|
||||
PG_KEYWORD("first", FIRST_P, UNRESERVED_KEYWORD)
|
||||
PG_KEYWORD("float", FLOAT_P, COL_NAME_KEYWORD)
|
||||
PG_KEYWORD("following", FOLLOWING, UNRESERVED_KEYWORD)
|
||||
|
||||
@@ -42,10 +42,9 @@ typedef enum
|
||||
} FuncDetailCode;
|
||||
|
||||
|
||||
extern Node *ParseFuncOrColumn(ParseState *pstate,
|
||||
List *funcname, List *fargs,
|
||||
List *agg_order, bool agg_star, bool agg_distinct,
|
||||
bool func_variadic,
|
||||
extern Node *ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
|
||||
List *agg_order, Expr *agg_filter,
|
||||
bool agg_star, bool agg_distinct, bool func_variadic,
|
||||
WindowDef *over, bool is_column, int location);
|
||||
|
||||
extern FuncDetailCode func_get_detail(List *funcname,
|
||||
|
||||
@@ -39,6 +39,7 @@ typedef enum ParseExprKind
|
||||
EXPR_KIND_FROM_FUNCTION, /* function in FROM clause */
|
||||
EXPR_KIND_WHERE, /* WHERE */
|
||||
EXPR_KIND_HAVING, /* HAVING */
|
||||
EXPR_KIND_FILTER, /* FILTER */
|
||||
EXPR_KIND_WINDOW_PARTITION, /* window definition PARTITION BY */
|
||||
EXPR_KIND_WINDOW_ORDER, /* window definition ORDER BY */
|
||||
EXPR_KIND_WINDOW_FRAME_RANGE, /* window frame clause with RANGE */
|
||||
|
||||
Reference in New Issue
Block a user