From afc7f2db700bbfee77e8021998c42dc734c8ce4c Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 18 May 2002 00:42:55 +0000 Subject: [PATCH] Add missing fix_expr_references() step for the funcexpr of a FunctionScan plan node. --- src/backend/optimizer/plan/setrefs.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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); -- 2.39.5