Do execGrouping.c via expression eval machinery.

This has a performance benefit on own, although not hugely so. The
primary benefit is that it will allow for to JIT tuple deforming and
comparator invocations.

Author: Andres Freund
Discussion: 
https://postgr.es/m/[email protected]

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/773aec7aa98abd38d6d9435913bb8e14e392c274

Modified Files
--------------
src/backend/executor/execExpr.c           | 118 +++++++++++++++
src/backend/executor/execExprInterp.c     |  29 ++++
src/backend/executor/execGrouping.c       | 236 +++++++-----------------------
src/backend/executor/nodeAgg.c            | 143 +++++++++++-------
src/backend/executor/nodeGroup.c          |  24 +--
src/backend/executor/nodeRecursiveunion.c |   5 +-
src/backend/executor/nodeSetOp.c          |  48 +++---
src/backend/executor/nodeSubplan.c        |  81 +++++++++-
src/backend/executor/nodeUnique.c         |  31 ++--
src/backend/executor/nodeWindowAgg.c      |  38 +++--
src/backend/utils/adt/orderedsetaggs.c    |  56 +++----
src/include/executor/execExpr.h           |   1 +
src/include/executor/executor.h           |  28 ++--
src/include/executor/nodeAgg.h            |  12 +-
src/include/nodes/execnodes.h             |  14 +-
15 files changed, 498 insertions(+), 366 deletions(-)

Reply via email to