aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/ruleutils.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>1999-12-13 01:27:21 +0000
committerTom Lane <tgl@sss.pgh.pa.us>1999-12-13 01:27:21 +0000
commita8ae19ec3d13452de931736126d0786a148ee643 (patch)
tree3dbdbba249c27b5362865f9ff1c7b2675c136574 /src/backend/utils/adt/ruleutils.c
parentefb36d2be8272d03167fe4205b640129ffe583fb (diff)
downloadpostgresql-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.c12
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;