From: Tom Lane Date: Sat, 18 May 2002 00:42:55 +0000 (+0000) Subject: Add missing fix_expr_references() step for the funcexpr of a X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=afc7f2db700bbfee77e8021998c42dc734c8ce4c;p=users%2Fbernd%2Fpostgres.git Add missing fix_expr_references() step for the funcexpr of a FunctionScan plan node. --- diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c index d05d14f3a8..045451be89 100644 --- a/src/backend/optimizer/plan/setrefs.c +++ b/src/backend/optimizer/plan/setrefs.c @@ -23,6 +23,7 @@ #include "optimizer/planmain.h" #include "optimizer/tlist.h" #include "optimizer/var.h" +#include "parser/parsetree.h" typedef struct @@ -121,8 +122,16 @@ set_plan_references(Query *root, Plan *plan) set_plan_references(root, ((SubqueryScan *) plan)->subplan); break; case T_FunctionScan: - fix_expr_references(plan, (Node *) plan->targetlist); - fix_expr_references(plan, (Node *) plan->qual); + { + RangeTblEntry *rte; + + fix_expr_references(plan, (Node *) plan->targetlist); + fix_expr_references(plan, (Node *) plan->qual); + rte = rt_fetch(((FunctionScan *) plan)->scan.scanrelid, + root->rtable); + Assert(rte->rtekind == RTE_FUNCTION); + fix_expr_references(plan, rte->funcexpr); + } break; case T_NestLoop: set_join_references(root, (Join *) plan);