pgsql: Aggregate functions now support multiple input arguments. - Mailing list pgsql-committers

From tgl@postgresql.org (Tom Lane)
Subject pgsql: Aggregate functions now support multiple input arguments.
Date
Msg-id 20060727195207.B4BC89FB212@postgresql.org
Whole thread Raw
List pgsql-committers
Log Message:
-----------
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.

Modified Files:
--------------
    pgsql/doc/src/sgml:
        sql.sgml (r1.40 -> r1.41)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/sql.sgml.diff?r1=1.40&r2=1.41)
        syntax.sgml (r1.107 -> r1.108)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/syntax.sgml.diff?r1=1.107&r2=1.108)
        xaggr.sgml (r1.31 -> r1.32)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/xaggr.sgml.diff?r1=1.31&r2=1.32)
    pgsql/doc/src/sgml/ref:
        alter_aggregate.sgml (r1.7 -> r1.8)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/alter_aggregate.sgml.diff?r1=1.7&r2=1.8)
        comment.sgml (r1.30 -> r1.31)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/comment.sgml.diff?r1=1.30&r2=1.31)
        create_aggregate.sgml (r1.34 -> r1.35)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/create_aggregate.sgml.diff?r1=1.34&r2=1.35)
        drop_aggregate.sgml (r1.28 -> r1.29)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/drop_aggregate.sgml.diff?r1=1.28&r2=1.29)
        psql-ref.sgml (r1.165 -> r1.166)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/doc/src/sgml/ref/psql-ref.sgml.diff?r1=1.165&r2=1.166)
    pgsql/src/backend/catalog:
        pg_aggregate.c (r1.81 -> r1.82)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/catalog/pg_aggregate.c.diff?r1=1.81&r2=1.82)
    pgsql/src/backend/commands:
        aggregatecmds.c (r1.37 -> r1.38)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/aggregatecmds.c.diff?r1=1.37&r2=1.38)
    pgsql/src/backend/executor:
        execQual.c (r1.192 -> r1.193)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/execQual.c.diff?r1=1.192&r2=1.193)
        nodeAgg.c (r1.144 -> r1.145)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/nodeAgg.c.diff?r1=1.144&r2=1.145)
    pgsql/src/backend/nodes:
        copyfuncs.c (r1.343 -> r1.344)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/copyfuncs.c.diff?r1=1.343&r2=1.344)
        equalfuncs.c (r1.277 -> r1.278)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/equalfuncs.c.diff?r1=1.277&r2=1.278)
        outfuncs.c (r1.278 -> r1.279)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/outfuncs.c.diff?r1=1.278&r2=1.279)
        readfuncs.c (r1.191 -> r1.192)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/nodes/readfuncs.c.diff?r1=1.191&r2=1.192)
    pgsql/src/backend/optimizer/plan:
        planagg.c (r1.19 -> r1.20)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/plan/planagg.c.diff?r1=1.19&r2=1.20)
    pgsql/src/backend/optimizer/util:
        clauses.c (r1.214 -> r1.215)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/optimizer/util/clauses.c.diff?r1=1.214&r2=1.215)
    pgsql/src/backend/parser:
        gram.y (r2.551 -> r2.552)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/gram.y.diff?r1=2.551&r2=2.552)
        parse_agg.c (r1.72 -> r1.73)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_agg.c.diff?r1=1.72&r2=1.73)
        parse_func.c (r1.188 -> r1.189)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/parser/parse_func.c.diff?r1=1.188&r2=1.189)
    pgsql/src/backend/utils/adt:
        ruleutils.c (r1.228 -> r1.229)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/ruleutils.c.diff?r1=1.228&r2=1.229)
    pgsql/src/bin/pg_dump:
        pg_dump.c (r1.441 -> r1.442)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/bin/pg_dump/pg_dump.c.diff?r1=1.441&r2=1.442)
        pg_dump.h (r1.126 -> r1.127)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/bin/pg_dump/pg_dump.h.diff?r1=1.126&r2=1.127)
    pgsql/src/bin/psql:
        describe.c (r1.141 -> r1.142)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/bin/psql/describe.c.diff?r1=1.141&r2=1.142)
    pgsql/src/include/catalog:
        catversion.h (r1.341 -> r1.342)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/catversion.h.diff?r1=1.341&r2=1.342)
        pg_aggregate.h (r1.55 -> r1.56)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_aggregate.h.diff?r1=1.55&r2=1.56)
        pg_proc.h (r1.417 -> r1.418)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_proc.h.diff?r1=1.417&r2=1.418)
    pgsql/src/include/nodes:
        execnodes.h (r1.154 -> r1.155)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/execnodes.h.diff?r1=1.154&r2=1.155)
        primnodes.h (r1.114 -> r1.115)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/nodes/primnodes.h.diff?r1=1.114&r2=1.115)
    pgsql/src/include/parser:
        parse_agg.h (r1.33 -> r1.34)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/parser/parse_agg.h.diff?r1=1.33&r2=1.34)
    pgsql/src/test/regress/expected:
        aggregates.out (r1.13 -> r1.14)

(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/aggregates.out.diff?r1=1.13&r2=1.14)
        create_aggregate.out (r1.4 -> r1.5)

(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/create_aggregate.out.diff?r1=1.4&r2=1.5)
        opr_sanity.out (r1.64 -> r1.65)

(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/opr_sanity.out.diff?r1=1.64&r2=1.65)
        polymorphism.out (r1.8 -> r1.9)

(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/polymorphism.out.diff?r1=1.8&r2=1.9)
    pgsql/src/test/regress/sql:
        aggregates.sql (r1.11 -> r1.12)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/aggregates.sql.diff?r1=1.11&r2=1.12)
        create_aggregate.sql (r1.5 -> r1.6)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/create_aggregate.sql.diff?r1=1.5&r2=1.6)
        opr_sanity.sql (r1.50 -> r1.51)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/opr_sanity.sql.diff?r1=1.50&r2=1.51)
        polymorphism.sql (r1.2 -> r1.3)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/polymorphism.sql.diff?r1=1.2&r2=1.3)

pgsql-committers by date:

Previous
From: adunstan@postgresql.org (Andrew Dunstan)
Date:
Subject: pgsql: another try at keeping AIX/ppc happy on cube test.
Next
From: adunstan@postgresql.org (Andrew Dunstan)
Date:
Subject: pgsql: revert last change - broke non-AIX platforms.