1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-08 11:42:09 +03:00

Improve pull_up_subqueries logic so that it doesn't insert unnecessary

PlaceHolderVar nodes in join quals appearing in or below the lowest
outer join that could null the subquery being pulled up.  This improves
the planner's ability to recognize constant join quals, and probably
helps with detection of common sort keys (equivalence classes) as well.
This commit is contained in:
Tom Lane
2009-04-28 21:31:16 +00:00
parent 636edd553d
commit c59d8dd44d
3 changed files with 148 additions and 71 deletions

View File

@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/optimizer/plan/planner.c,v 1.254 2009/04/19 19:46:33 tgl Exp $
* $PostgreSQL: pgsql/src/backend/optimizer/plan/planner.c,v 1.255 2009/04/28 21:31:16 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -324,7 +324,7 @@ subquery_planner(PlannerGlobal *glob, Query *parse,
* this query.
*/
parse->jointree = (FromExpr *)
pull_up_subqueries(root, (Node *) parse->jointree, false, false);
pull_up_subqueries(root, (Node *) parse->jointree, NULL, NULL);
/*
* Detect whether any rangetable entries are RTE_JOIN kind; if not, we can