Aggregate functions now support multiple input arguments. I also took

Tom Lane <tgl@sss.pgh.pa.us>

Commit: 108fe4730152058f9b576969d08898b39bf7fc38
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2006-07-27T19:52:07Z
Releases: 8.2.0
Aggregate functions now support multiple input arguments.  I also took
the opportunity to treat COUNT(*) as a zero-argument aggregate instead
of the old hack that equated it to COUNT(1); this is materially cleaner
(no more weird ANYOID cases) and ought to be at least a tiny bit faster.
Original patch by Sergey Koposov; review, documentation, simple regression
tests, pg_dump and psql support by moi.

Files

PathChange+/−
doc/src/sgml/ref/alter_aggregate.sgml modified +7 −6
doc/src/sgml/ref/comment.sgml modified +5 −4
doc/src/sgml/ref/create_aggregate.sgml modified +34 −34
doc/src/sgml/ref/drop_aggregate.sgml modified +6 −5
doc/src/sgml/ref/psql-ref.sgml modified +2 −2
doc/src/sgml/sql.sgml modified +12 −12
doc/src/sgml/syntax.sgml modified +19 −11
doc/src/sgml/xaggr.sgml modified +11 −10
src/backend/catalog/pg_aggregate.c modified +65 −49
src/backend/commands/aggregatecmds.c modified +28 −25
src/backend/executor/execQual.c modified +4 −3
src/backend/executor/nodeAgg.c modified +117 −61
src/backend/nodes/copyfuncs.c modified +2 −2
src/backend/nodes/equalfuncs.c modified +2 −2
src/backend/nodes/outfuncs.c modified +2 −2
src/backend/nodes/readfuncs.c modified +2 −2
src/backend/optimizer/plan/planagg.c modified +9 −6
src/backend/optimizer/util/clauses.c modified +38 −20
src/backend/parser/gram.y modified +4 −10
src/backend/parser/parse_agg.c modified +26 −30
src/backend/parser/parse_func.c modified +26 −28
src/backend/utils/adt/ruleutils.c modified +19 −5
src/bin/pg_dump/pg_dump.c modified +58 −55
src/bin/pg_dump/pg_dump.h modified +2 −3
src/bin/psql/describe.c modified +12 −7
src/include/catalog/catversion.h modified +2 −2
src/include/catalog/pg_aggregate.h modified +6 −7
src/include/catalog/pg_proc.h modified +5 −1
src/include/nodes/execnodes.h modified +2 −2
src/include/nodes/primnodes.h modified +3 −3
src/include/parser/parse_agg.h modified +3 −2
src/test/regress/expected/aggregates.out modified +19 −0
src/test/regress/expected/create_aggregate.out modified +22 −5
src/test/regress/expected/opr_sanity.out modified +19 −11
src/test/regress/expected/polymorphism.out modified +42 −30
src/test/regress/sql/aggregates.sql modified +4 −2
src/test/regress/sql/create_aggregate.sql modified +26 −5
src/test/regress/sql/opr_sanity.sql modified +16 −8
src/test/regress/sql/polymorphism.sql modified +21 −12