Thread: pgsql-server/src backend/executor/execQual.c b ...

pgsql-server/src backend/executor/execQual.c b ...

From
tgl@svr1.postgresql.org (Tom Lane)
Date:
CVSROOT:    /cvsroot
Module name:    pgsql-server
Changes by:    tgl@svr1.postgresql.org    04/03/16 21:02:24

Modified files:
    src/backend/executor: execQual.c nodeHash.c nodeMergejoin.c
                          nodeSubplan.c
    src/include/executor: executor.h nodeSubplan.h
    src/include/nodes: execnodes.h

Log message:
    Replace the switching function ExecEvalExpr() with a macro that jumps
    directly to the appropriate per-node execution function, using a function
    pointer stored by ExecInitExpr.  This speeds things up by eliminating one
    level of function call.  The function-pointer technique also enables further
    small improvements such as only making one-time tests once (and then
    changing the function pointer).  Overall this seems to gain about 10%
    on evaluation of simple expressions, which isn't earthshaking but seems
    a worthwhile gain for a relatively small hack.  Per recent discussion
    on pghackers.