aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/aggregatecmds.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-07-01 19:10:53 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-07-01 19:10:53 +0000
commite3b1b6c0cdc1ceda26053573af1da4f35ee8566d (patch)
tree9a4c13b8dde0b73cc78b418ba6beee6ef2ebc01a /src/backend/commands/aggregatecmds.c
parent02b5d8e37195bc2432df37d248566506371f1c81 (diff)
downloadpostgresql-e3b1b6c0cdc1ceda26053573af1da4f35ee8566d.tar.gz
postgresql-e3b1b6c0cdc1ceda26053573af1da4f35ee8566d.zip
Aggregates can be polymorphic, using polymorphic implementation functions.
It also works to create a non-polymorphic aggregate from polymorphic functions, should you want to do that. Regression test added, docs still lacking. By Joe Conway, with some kibitzing from Tom Lane.
Diffstat (limited to 'src/backend/commands/aggregatecmds.c')
-rw-r--r--src/backend/commands/aggregatecmds.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/commands/aggregatecmds.c b/src/backend/commands/aggregatecmds.c
index 1ea31a6a5a0..860d490bd30 100644
--- a/src/backend/commands/aggregatecmds.c
+++ b/src/backend/commands/aggregatecmds.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/aggregatecmds.c,v 1.8 2003/06/27 14:45:27 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/aggregatecmds.c,v 1.9 2003/07/01 19:10:52 tgl Exp $
*
* DESCRIPTION
* The "DefineFoo" routines take the parse tree and pick out the
@@ -120,7 +120,9 @@ DefineAggregate(List *names, List *parameters)
baseTypeId = typenameTypeId(baseType);
transTypeId = typenameTypeId(transType);
- if (get_typtype(transTypeId) == 'p')
+ if (get_typtype(transTypeId) == 'p' &&
+ transTypeId != ANYARRAYOID &&
+ transTypeId != ANYELEMENTOID)
elog(ERROR, "Aggregate transition datatype cannot be %s",
format_type_be(transTypeId));