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

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

From
tgl@postgresql.org (Tom Lane)
Date:
CVSROOT:    /cvsroot
Module name:    pgsql-server
Changes by:    tgl@postgresql.org    03/02/03 10:07:09

Modified files:
    src/backend/executor: execMain.c execScan.c nodeIndexscan.c
                          nodeSeqscan.c nodeTidscan.c
    src/backend/optimizer/plan: createplan.c planner.c
    src/backend/optimizer/util: plancat.c relnode.c
    src/include/executor: executor.h
    src/include/nodes: relation.h
    src/include/optimizer: plancat.h

Log message:
    Tweak planner and executor to avoid doing ExecProject() in table scan
    nodes where it's not really necessary.  In many cases where the scan node
    is not the topmost plan node (eg, joins, aggregation), it's possible to
    just return the table tuple directly instead of generating an intermediate
    projection tuple.  In preliminary testing, this reduced the CPU time
    needed for 'SELECT COUNT(*) FROM foo' by about 10%.