pgsql-server/src backend/nodes/bitmapset.c bac ... - Mailing list pgsql-committers

From tgl@svr1.postgresql.org (Tom Lane)
Subject pgsql-server/src backend/nodes/bitmapset.c bac ...
Date
Msg-id 20030629230505.47D84310578@svr1.postgresql.org
Whole thread Raw
List pgsql-committers
CVSROOT:    /cvsroot
Module name:    pgsql-server
Changes by:    tgl@svr1.postgresql.org    03/06/29 20:05:05

Modified files:
    src/backend/nodes: bitmapset.c
    src/backend/optimizer/path: allpaths.c costsize.c pathkeys.c
    src/backend/optimizer/plan: createplan.c initsplan.c
    src/backend/optimizer/prep: prepunion.c
    src/backend/optimizer/util: pathnode.c plancat.c relnode.c
                                tlist.c
    src/include/nodes: bitmapset.h relation.h
    src/include/optimizer: plancat.h planmain.h tlist.h

Log message:
    Restructure building of join relation targetlists so that a join plan
    node emits only those vars that are actually needed above it in the
    plan tree.  (There were comments in the code suggesting that this was
    done at some point in the dim past, but for a long time we have just
    made join nodes emit everything that either input emitted.)  Aside from
    being marginally more efficient, this fixes the problem noted by Peter
    Eisentraut where a join above an IN-implemented-as-join might fail,
    because the subplan targetlist constructed in the latter case didn't
    meet the expectation of including everything.
    Along the way, fix some places that were O(N^2) in the targetlist
    length.  This is not all the trouble spots for wide queries by any
    means, but it's a step forward.


pgsql-committers by date:

Previous
From: meskes@svr1.postgresql.org (Michael Meskes)
Date:
Subject: pgsql-server/src/interfaces/ecpg ChangeLog inc ...
Next
From: tgl@svr1.postgresql.org (Tom Lane)
Date:
Subject: pgsql-server/ oc/src/sgml/runtime.sgml rc/back ...