Revise aggregate functions per earlier discussions in pghackers.

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

Commit: bec98a31c55a4f799b398d01541e68d7c086bb81
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: 2000-07-17T03:05:41Z
Releases: 7.1.1
Revise aggregate functions per earlier discussions in pghackers.
There's now only one transition value and transition function.
NULL handling in aggregates is a lot cleaner.  Also, use Numeric
accumulators instead of integer accumulators for sum/avg on integer
datatypes --- this avoids overflow at the cost of being a little slower.
Implement VARIANCE() and STDDEV() aggregates in the standard backend.

Also, enable new LIKE selectivity estimators by default.  Unrelated
change, but as long as I had to force initdb anyway...

Files

PathChange+/−
doc/src/sgml/catalogs.sgml modified +7 −11
doc/src/sgml/ref/create_aggregate.sgml modified +92 −131
doc/src/sgml/ref/drop_aggregate.sgml modified +3 −3
doc/src/sgml/xaggr.sgml modified +49 −87
src/backend/catalog/pg_aggregate.c modified +108 −176
src/backend/commands/define.c modified +31 −65
src/backend/commands/user.c modified +2 −1
src/backend/executor/execQual.c modified +2 −1
src/backend/executor/execScan.c modified +4 −1
src/backend/executor/nodeAgg.c modified +184 −248
src/backend/executor/nodeHash.c modified +3 −1
src/backend/executor/nodeHashjoin.c modified +3 −1
src/backend/executor/nodeNestloop.c modified +4 −1
src/backend/executor/nodeResult.c modified +3 −1
src/backend/libpq/be-fsstubs.c modified +3 −1
src/backend/nodes/copyfuncs.c modified +1 −2
src/backend/nodes/equalfuncs.c modified +1 −3
src/backend/nodes/outfuncs.c modified +3 −5
src/backend/nodes/readfuncs.c modified +1 −5
src/backend/parser/parse_agg.c modified +13 −41
src/backend/postmaster/postmaster.c modified +3 −1
src/backend/storage/lmgr/lock.c modified +4 −177
src/backend/storage/smgr/md.c modified +4 −3
src/backend/tcop/postgres.c modified +3 −2
src/backend/tcop/pquery.c modified +3 −1
src/backend/utils/adt/arrayfuncs.c modified +263 −141
src/backend/utils/adt/float.c modified +180 −46
src/backend/utils/adt/int.c modified +1 −9
src/backend/utils/adt/numeric.c modified +475 −121
src/backend/utils/adt/timestamp.c modified +86 −6
src/bin/pg_dump/pg_dump.c modified +33 −90
src/bin/pg_dump/pg_dump.h modified +4 −7
src/include/catalog/catversion.h modified +2 −2
src/include/catalog/pg_aggregate.h modified +86 −80
src/include/catalog/pg_operator.h modified +25 −25
src/include/catalog/pg_proc.h modified +38 −12
src/include/c.h modified +20 −1
src/include/nodes/primnodes.h modified +3 −5
src/include/storage/lock.h modified +1 −3
src/include/utils/array.h modified +22 −7
src/include/utils/builtins.h modified +19 −8
src/include/utils/numeric.h modified +8 −6
src/include/utils/timestamp.h modified +3 −1
src/pl/tcl/test/test_setup.sql modified +17 −12
src/test/regress/expected/aggregates.out modified +12 −10
src/test/regress/expected/create_aggregate.out modified +7 −8
src/test/regress/expected/errors.out modified +8 −36
src/test/regress/expected/oidjoins.out modified +26 −26
src/test/regress/expected/opr_sanity.out modified +23 −69
src/test/regress/sql/aggregates.sql modified +4 −1
src/test/regress/sql/create_aggregate.sql modified +7 −8
src/test/regress/sql/errors.sql modified +7 −34
src/test/regress/sql/oidjoins.sql modified +14 −14
src/test/regress/sql/opr_sanity.sql modified +16 −51
src/tutorial/complex.source modified +4 −4