diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 1999-12-13 01:27:21 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 1999-12-13 01:27:21 +0000 |
commit | a8ae19ec3d13452de931736126d0786a148ee643 (patch) | |
tree | 3dbdbba249c27b5362865f9ff1c7b2675c136574 /src/backend/utils/adt/ruleutils.c | |
parent | efb36d2be8272d03167fe4205b640129ffe583fb (diff) | |
download | postgresql-a8ae19ec3d13452de931736126d0786a148ee643.tar.gz postgresql-a8ae19ec3d13452de931736126d0786a148ee643.zip |
aggregate(DISTINCT ...) works, per SQL spec.
Note this forces initdb because of change of Aggref node in stored rules.
Diffstat (limited to 'src/backend/utils/adt/ruleutils.c')
-rw-r--r-- | src/backend/utils/adt/ruleutils.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index b62559ccdde..47fd957c994 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -3,7 +3,7 @@ * out of it's tuple * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.34 1999/12/06 02:37:17 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.35 1999/12/13 01:27:01 tgl Exp $ * * This software is copyrighted by Jan Wieck - Hamburg. * @@ -1352,9 +1352,13 @@ get_rule_expr(Node *node, deparse_context *context) { Aggref *aggref = (Aggref *) node; - appendStringInfo(buf, "%s(", - quote_identifier(aggref->aggname)); - get_rule_expr(aggref->target, context); + appendStringInfo(buf, "%s(%s", + quote_identifier(aggref->aggname), + aggref->aggdistinct ? "DISTINCT " : ""); + if (aggref->aggstar) + appendStringInfo(buf, "*"); + else + get_rule_expr(aggref->target, context); appendStringInfo(buf, ")"); } break; |