diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2003-07-01 19:10:53 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2003-07-01 19:10:53 +0000 |
commit | e3b1b6c0cdc1ceda26053573af1da4f35ee8566d (patch) | |
tree | 9a4c13b8dde0b73cc78b418ba6beee6ef2ebc01a /src/backend/commands/aggregatecmds.c | |
parent | 02b5d8e37195bc2432df37d248566506371f1c81 (diff) | |
download | postgresql-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.c | 6 |
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)); |