diff options
author | David Rowley <drowley@postgresql.org> | 2021-05-25 12:50:22 +1200 |
---|---|---|
committer | David Rowley <drowley@postgresql.org> | 2021-05-25 12:50:22 +1200 |
commit | cba5c70b956810c61b3778f7041f92fbb8065acb (patch) | |
tree | 19632f4af0804aa1e7d48032a03abbc7c08d296b /src/backend/optimizer/plan/setrefs.c | |
parent | c242baa4a831ac2e7dcaec85feb410aefa3a996e (diff) | |
download | postgresql-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.c | 6 |
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)); |