From 0a757154bd4592b69e3715a7066645f4046ee57e 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 | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c index 3e07b2425e..1b05d49054 100644 --- a/src/backend/optimizer/plan/setrefs.c +++ b/src/backend/optimizer/plan/setrefs.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.76 2002/05/12 20:10:03 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.77 2002/05/18 00:42:55 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -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.11.0