aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/plan/setrefs.c
diff options
context:
space:
mode:
authorDavid Rowley <drowley@postgresql.org>2021-05-25 12:50:22 +1200
committerDavid Rowley <drowley@postgresql.org>2021-05-25 12:50:22 +1200
commitcba5c70b956810c61b3778f7041f92fbb8065acb (patch)
tree19632f4af0804aa1e7d48032a03abbc7c08d296b /src/backend/optimizer/plan/setrefs.c
parentc242baa4a831ac2e7dcaec85feb410aefa3a996e (diff)
downloadpostgresql-cba5c70b956810c61b3778f7041f92fbb8065acb.tar.gz
postgresql-cba5c70b956810c61b3778f7041f92fbb8065acb.zip
Fix setrefs.c code for Result Cache nodes
Result Cache, added in 9eacee2e6 neglected to properly adjust the plan references in setrefs.c. This could lead to the following error during EXPLAIN: ERROR: cannot decompile join alias var in plan tree Fix that. Bug: 17030 Reported-by: Hans Buschmann Discussion: https://postgr.es/m/17030-5844aecae42fe223@postgresql.org
Diffstat (limited to 'src/backend/optimizer/plan/setrefs.c')
-rw-r--r--src/backend/optimizer/plan/setrefs.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c
index 9f40ed77e64..61ccfd300b3 100644
--- a/src/backend/optimizer/plan/setrefs.c
+++ b/src/backend/optimizer/plan/setrefs.c
@@ -756,6 +756,12 @@ set_plan_refs(PlannerInfo *root, Plan *plan, int rtoffset)
{
ResultCache *rcplan = (ResultCache *) plan;
+ /*
+ * Result Cache does not evaluate its targetlist. It just
+ * uses the same targetlist from its outer subnode.
+ */
+ set_dummy_tlist_references(plan, rtoffset);
+
rcplan->param_exprs = fix_scan_list(root, rcplan->param_exprs,
rtoffset,
NUM_EXEC_TLIST(plan));