diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c index 97fa561e4e..9deeb7d337 100644 --- a/src/backend/optimizer/plan/setrefs.c +++ b/src/backend/optimizer/plan/setrefs.c @@ -547,7 +547,7 @@ add_rte_to_flat_rtable(PlannerGlobal *glob, List *rteperminfos, /* zap unneeded sub-structure */ newrte->tablesample = NULL; - newrte->subquery = NULL; +// newrte->subquery = NULL; newrte->joinaliasvars = NIL; newrte->joinleftcols = NIL; newrte->joinrightcols = NIL; diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index 97b0ef22ac..82d33fe595 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -5004,6 +5004,8 @@ set_deparse_plan(deparse_namespace *dpns, Plan *plan) else if (IsA(plan, WorkTableScan)) dpns->inner_plan = find_recursive_union(dpns, (WorkTableScan *) plan); + else if (IsA(plan, CustomScan) && dpns->subplans != NULL) + dpns->inner_plan = (Plan *) linitial(dpns->subplans); else if (IsA(plan, ModifyTable)) dpns->inner_plan = plan; else