Skip to content

Commit 0a75715

Browse files
committed
Add missing fix_expr_references() step for the funcexpr of a
FunctionScan plan node.
1 parent 22d641a commit 0a75715

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/backend/optimizer/plan/setrefs.c

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
*
1111
* IDENTIFICATION
12-
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.76 2002/05/12 20:10:03 tgl Exp $
12+
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.77 2002/05/18 00:42:55 tgl Exp $
1313
*
1414
*-------------------------------------------------------------------------
1515
*/
@@ -23,6 +23,7 @@
2323
#include "optimizer/planmain.h"
2424
#include "optimizer/tlist.h"
2525
#include "optimizer/var.h"
26+
#include "parser/parsetree.h"
2627

2728

2829
typedef struct
@@ -121,8 +122,16 @@ set_plan_references(Query *root, Plan *plan)
121122
set_plan_references(root, ((SubqueryScan *) plan)->subplan);
122123
break;
123124
case T_FunctionScan:
124-
fix_expr_references(plan, (Node *) plan->targetlist);
125-
fix_expr_references(plan, (Node *) plan->qual);
125+
{
126+
RangeTblEntry *rte;
127+
128+
fix_expr_references(plan, (Node *) plan->targetlist);
129+
fix_expr_references(plan, (Node *) plan->qual);
130+
rte = rt_fetch(((FunctionScan *) plan)->scan.scanrelid,
131+
root->rtable);
132+
Assert(rte->rtekind == RTE_FUNCTION);
133+
fix_expr_references(plan, rte->funcexpr);
134+
}
126135
break;
127136
case T_NestLoop:
128137
set_join_references(root, (Join *) plan);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy