OSDN Git Service

Implement outer-level aggregates to conform to the SQL spec, with
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 6 Jun 2003 15:04:03 +0000 (15:04 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 6 Jun 2003 15:04:03 +0000 (15:04 +0000)
commite649796f128bd8702ba5744d36f4e8cb81f0b754
tree050eda51ad8f0298731316ccf61db2c01a2863a3
parent2c93861f7cef99b4613abd37ed7e4c15a95754b4
Implement outer-level aggregates to conform to the SQL spec, with
extensions to support our historical behavior.  An aggregate belongs
to the closest query level of any of the variables in its argument,
or the current query level if there are no variables (e.g., COUNT(*)).
The implementation involves adding an agglevelsup field to Aggref,
and treating outer aggregates like outer variables at planning time.
26 files changed:
doc/src/sgml/syntax.sgml
src/backend/catalog/heap.c
src/backend/commands/tablecmds.c
src/backend/commands/typecmds.c
src/backend/executor/nodeAgg.c
src/backend/executor/nodeSubplan.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/nodes/outfuncs.c
src/backend/nodes/readfuncs.c
src/backend/optimizer/plan/planner.c
src/backend/optimizer/plan/subselect.c
src/backend/optimizer/util/clauses.c
src/backend/optimizer/util/var.c
src/backend/parser/analyze.c
src/backend/parser/parse_agg.c
src/backend/parser/parse_clause.c
src/backend/parser/parse_func.c
src/backend/rewrite/rewriteManip.c
src/include/catalog/catversion.h
src/include/nodes/primnodes.h
src/include/optimizer/subselect.h
src/include/optimizer/var.h
src/include/parser/parse_agg.h
src/test/regress/expected/aggregates.out
src/test/regress/sql/aggregates.sql