diff options
Diffstat (limited to 'src/backend/optimizer/util/clauses.c')
-rw-r--r-- | src/backend/optimizer/util/clauses.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/backend/optimizer/util/clauses.c b/src/backend/optimizer/util/clauses.c index bee9c7a9dda..8f4a08da9dc 100644 --- a/src/backend/optimizer/util/clauses.c +++ b/src/backend/optimizer/util/clauses.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/optimizer/util/clauses.c,v 1.254 2008/01/11 18:39:40 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/optimizer/util/clauses.c,v 1.254.2.1 2008/04/01 00:48:44 tgl Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -1675,16 +1675,22 @@ rowtype_field_matches(Oid rowtypeid, int fieldnum, * We assume that the tree has already been type-checked and contains * only operators and functions that are reasonable to try to execute. * + * NOTE: "root" can be passed as NULL if the caller never wants to do any + * Param substitutions. + * * NOTE: the planner assumes that this will always flatten nested AND and * OR clauses into N-argument form. See comments in prepqual.c. *-------------------- */ Node * -eval_const_expressions(Node *node) +eval_const_expressions(PlannerInfo *root, Node *node) { eval_const_expressions_context context; - context.boundParams = NULL; /* don't use any bound params */ + if (root) + context.boundParams = root->glob->boundParams; /* bound Params */ + else + context.boundParams = NULL; context.active_fns = NIL; /* nothing being recursively simplified */ context.case_val = NULL; /* no CASE being examined */ context.estimate = false; /* safe transformations only */ |