]> granicus.if.org Git - postgresql/commit
Dept of better ideas: refrain from creating the planner's placeholder_list
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 22 Oct 2008 20:17:52 +0000 (20:17 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 22 Oct 2008 20:17:52 +0000 (20:17 +0000)
commit31468d05d89d494de00156e66c3e57d6dff9c79f
tree2003474691158d0d9b87e9d1a06cb2f0f754e726
parentb9856b67a7a762ab5bedfafbda4f654797d83996
Dept of better ideas: refrain from creating the planner's placeholder_list
until vars are distributed to rels during query_planner() startup.  We don't
really need it before that, and not building it early has some advantages.
First, we don't need to put it through the various preprocessing steps, which
saves some cycles and eliminates the need for a number of routines to support
PlaceHolderInfo nodes at all.  Second, this means one less unused plan for any
sub-SELECT appearing in a placeholder's expression, since we don't build
placeholder_list until after sublink expansion is complete.
src/backend/optimizer/plan/planmain.c
src/backend/optimizer/plan/planner.c
src/backend/optimizer/prep/prepjointree.c
src/backend/optimizer/prep/prepunion.c
src/backend/optimizer/util/placeholder.c
src/backend/optimizer/util/var.c
src/backend/rewrite/rewriteManip.c
src/include/nodes/relation.h