Remove Query->qry_aggs and qry_numaggs and replace with Query->hasAggs.
Bruce Momjian <bruce@momjian.us>
Remove Query->qry_aggs and qry_numaggs and replace with Query->hasAggs. Pass List* of Aggregs into executor, and create needed array there. No longer need to double-processs Aggregs with second copy in Query. Fix crash when doing: select sum(x+1) from test where 1 > 0;
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/executor/nodeAgg.c | modified | +16 −6 |
| src/backend/nodes/copyfuncs.c | modified | +3 −16 |
| src/backend/nodes/list.c | modified | +43 −43 |
| src/backend/nodes/outfuncs.c | modified | +5 −12 |
| src/backend/nodes/readfuncs.c | modified | +6 −18 |
| src/backend/optimizer/plan/createplan.c | modified | +3 −4 |
| src/backend/optimizer/plan/planmain.c | modified | +16 −16 |
| src/backend/optimizer/plan/planner.c | modified | +8 −14 |
| src/backend/optimizer/plan/setrefs.c | modified | +39 −37 |
| src/backend/optimizer/prep/prepunion.c | modified | +4 −7 |
| src/backend/parser/analyze.c | modified | +7 −8 |
| src/backend/parser/parse_agg.c | modified | +6 −51 |
| src/backend/parser/parse_func.c | modified | +2 −7 |
| src/backend/parser/parse_node.c | modified | +2 −3 |
| src/backend/rewrite/locks.c | modified | +1 −6 |
| src/backend/rewrite/rewriteManip.c | modified | +2 −10 |
| src/include/nodes/parsenodes.h | modified | +2 −4 |
| src/include/nodes/plannodes.h | modified | +2 −3 |
| src/include/optimizer/planmain.h | modified | +3 −3 |
| src/include/parser/parse_node.h | modified | +3 −4 |