aggregate(DISTINCT ...) works, per SQL spec.
Tom Lane <tgl@sss.pgh.pa.us>
aggregate(DISTINCT ...) works, per SQL spec. Note this forces initdb because of change of Aggref node in stored rules.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/executor/nodeAgg.c | modified | +364 −198 |
| src/backend/nodes/copyfuncs.c | modified | +3 −1 |
| src/backend/nodes/equalfuncs.c | modified | +5 −1 |
| src/backend/nodes/outfuncs.c | modified | +7 −4 |
| src/backend/nodes/readfuncs.c | modified | +9 −1 |
| src/backend/optimizer/util/clauses.c | modified | +35 −3 |
| src/backend/parser/parse_agg.c | modified | +5 −37 |
| src/backend/utils/adt/ruleutils.c | modified | +8 −4 |
| src/backend/utils/sort/tuplesort.c | modified | +260 −3 |
| src/include/catalog/catversion.h | modified | +2 −2 |
| src/include/nodes/primnodes.h | modified | +6 −2 |
| src/include/optimizer/clauses.h | modified | +2 −1 |
| src/include/utils/tuplesort.h | modified | +15 −4 |
| src/test/regress/expected/aggregates.out | modified | +36 −0 |
| src/test/regress/expected/rules.out | modified | +2 −2 |
| src/test/regress/sql/aggregates.sql | modified | +6 −0 |