-
由 Heikki Linnakangas 提交于
The GPDB "prelim" functions did the same things as the "combine" functions introduced in PostgreSQL 9.6 This commit includes just the catalog changes, to essentially search & replace "prelim" with "combine". I did not pick the planner and executor changes that were made as part of this in the upstream, yet. Also replace the GPDB implementation of float8_amalg() and float8_regr_amalg(), with the upstream float8_combine() and float8_regr_combine(). They do the same thing, but let's use upstream functions where possible. Upstream commits: commit a7de3dc5 Author: Robert Haas <rhaas@postgresql.org> Date: Wed Jan 20 13:46:50 2016 -0500 Support multi-stage aggregation. Aggregate nodes now have two new modes: a "partial" mode where they output the unfinalized transition state, and a "finalize" mode where they accept unfinalized transition states rather than individual values as input. These new modes are not used anywhere yet, but they will be necessary for parallel aggregation. The infrastructure also figures to be useful for cases where we want to aggregate local data and remote data via the FDW interface, and want to bring back partial aggregates from the remote side that can then be combined with locally generated partial aggregates to produce the final value. It may also be useful even when neither FDWs nor parallelism are in play, as explained in the comments in nodeAgg.c. David Rowley and Simon Riggs, reviewed by KaiGai Kohei, Heikki Linnakangas, Haribabu Kommi, and me. commit af025eed Author: Robert Haas <rhaas@postgresql.org> Date: Fri Apr 8 13:44:50 2016 -0400 Add combine functions for various floating-point aggregates. This allows parallel aggregation to use them. It may seem surprising that we use float8_combine for both float4_accum and float8_accum transition functions, but that's because those functions differ only in the type of the non-transition-state argument. Haribabu Kommi, reviewed by David Rowley and Tomas Vondra
b8545d57