From: Tom Lane Date: Mon, 16 Apr 2001 19:44:10 +0000 (+0000) Subject: Avoid reversing user-given order of WHERE clauses while attaching clauses X-Git-Tag: REL7_1_1~84 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cdcaec5c53b290cc5e51a520980a97ac9eb4d5e3;p=thirdparty%2Fpostgresql.git Avoid reversing user-given order of WHERE clauses while attaching clauses to specific base or join RelOptInfo nodes during planning. This preserves the more-intuitive behavior of 7.0.* --- if you write an expensive clause (such as a sub-select) last, it should get evaluated last. Someday we ought to try to have some intelligence about the order of evaluation of WHERE clauses, but for now we should not override what the user wrote. --- diff --git a/src/backend/optimizer/plan/initsplan.c b/src/backend/optimizer/plan/initsplan.c index 2b2ebf238fe..7c3e15a8f88 100644 --- a/src/backend/optimizer/plan/initsplan.c +++ b/src/backend/optimizer/plan/initsplan.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/initsplan.c,v 1.58 2001/03/22 03:59:36 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/initsplan.c,v 1.59 2001/04/16 19:44:10 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -444,8 +444,8 @@ distribute_qual_to_rels(Query *root, Node *clause, */ RelOptInfo *rel = get_base_rel(root, lfirsti(relids)); - rel->baserestrictinfo = lcons(restrictinfo, - rel->baserestrictinfo); + rel->baserestrictinfo = lappend(rel->baserestrictinfo, + restrictinfo); /* * Check for a "mergejoinable" clause even though it's not a join @@ -549,8 +549,8 @@ add_join_info_to_rels(Query *root, RestrictInfo *restrictinfo, */ joininfo = find_joininfo_node(get_base_rel(root, cur_relid), unjoined_relids); - joininfo->jinfo_restrictinfo = lcons(restrictinfo, - joininfo->jinfo_restrictinfo); + joininfo->jinfo_restrictinfo = lappend(joininfo->jinfo_restrictinfo, + restrictinfo); } }