Push subplan clauses to the back in qual lists for join plans, not
only scan plans. Per observation from Rod Taylor.
This commit is contained in:
parent
147c16497b
commit
73e3edf2e6
|
@ -10,7 +10,7 @@
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.155 2003/08/17 19:58:05 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.156 2003/08/26 22:56:51 tgl Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -944,6 +944,10 @@ create_nestloop_plan(Query *root,
|
||||||
otherclauses = NIL;
|
otherclauses = NIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Sort clauses into best execution order */
|
||||||
|
joinclauses = order_qual_clauses(root, joinclauses);
|
||||||
|
otherclauses = order_qual_clauses(root, otherclauses);
|
||||||
|
|
||||||
join_plan = make_nestloop(tlist,
|
join_plan = make_nestloop(tlist,
|
||||||
joinclauses,
|
joinclauses,
|
||||||
otherclauses,
|
otherclauses,
|
||||||
|
@ -995,6 +999,11 @@ create_mergejoin_plan(Query *root,
|
||||||
mergeclauses = get_switched_clauses(best_path->path_mergeclauses,
|
mergeclauses = get_switched_clauses(best_path->path_mergeclauses,
|
||||||
best_path->jpath.outerjoinpath->parent->relids);
|
best_path->jpath.outerjoinpath->parent->relids);
|
||||||
|
|
||||||
|
/* Sort clauses into best execution order */
|
||||||
|
joinclauses = order_qual_clauses(root, joinclauses);
|
||||||
|
otherclauses = order_qual_clauses(root, otherclauses);
|
||||||
|
mergeclauses = order_qual_clauses(root, mergeclauses);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Create explicit sort nodes for the outer and inner join paths if
|
* Create explicit sort nodes for the outer and inner join paths if
|
||||||
* necessary. The sort cost was already accounted for in the path.
|
* necessary. The sort cost was already accounted for in the path.
|
||||||
|
@ -1078,6 +1087,11 @@ create_hashjoin_plan(Query *root,
|
||||||
hashclauses = get_switched_clauses(best_path->path_hashclauses,
|
hashclauses = get_switched_clauses(best_path->path_hashclauses,
|
||||||
best_path->jpath.outerjoinpath->parent->relids);
|
best_path->jpath.outerjoinpath->parent->relids);
|
||||||
|
|
||||||
|
/* Sort clauses into best execution order */
|
||||||
|
joinclauses = order_qual_clauses(root, joinclauses);
|
||||||
|
otherclauses = order_qual_clauses(root, otherclauses);
|
||||||
|
hashclauses = order_qual_clauses(root, hashclauses);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Extract the inner hash keys (right-hand operands of the
|
* Extract the inner hash keys (right-hand operands of the
|
||||||
* hashclauses) to put in the Hash node.
|
* hashclauses) to put in the Hash node.
|
||||||
|
|
Loading…
Reference in New Issue