From 18c30002863a1a4d2c2f0da6d245f106586bc686 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 10 Dec 1999 07:37:35 +0000 Subject: Teach grammar and parser about aggregate(DISTINCT ...). No implementation yet, but at least we can give a better error message: regression=> select count(distinct f1) from int4_tbl; ERROR: aggregate(DISTINCT ...) is not implemented yet instead of 'parser: parse error at or near distinct'. --- src/backend/parser/parse_expr.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/backend/parser/parse_expr.c') diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c index 76e5f91f1a8..ee43be41950 100644 --- a/src/backend/parser/parse_expr.c +++ b/src/backend/parser/parse_expr.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.59 1999/11/15 02:00:10 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.60 1999/12/10 07:37:35 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -106,8 +106,10 @@ transformExpr(ParseState *pstate, Node *expr, int precedence) Node *lexpr = transformExpr(pstate, a->lexpr, precedence); result = ParseFuncOrColumn(pstate, - "nullvalue", lcons(lexpr, NIL), - &pstate->p_last_resno, + "nullvalue", + lcons(lexpr, NIL), + false, false, + &pstate->p_last_resno, precedence); } break; @@ -116,8 +118,10 @@ transformExpr(ParseState *pstate, Node *expr, int precedence) Node *lexpr = transformExpr(pstate, a->lexpr, precedence); result = ParseFuncOrColumn(pstate, - "nonnullvalue", lcons(lexpr, NIL), - &pstate->p_last_resno, + "nonnullvalue", + lcons(lexpr, NIL), + false, false, + &pstate->p_last_resno, precedence); } break; @@ -192,6 +196,8 @@ transformExpr(ParseState *pstate, Node *expr, int precedence) result = ParseFuncOrColumn(pstate, fn->funcname, fn->args, + fn->agg_star, + fn->agg_distinct, &pstate->p_last_resno, precedence); break; -- cgit v1.2.3