diff --git a/src/backend/optimizer/plan/analyzejoins.c b/src/backend/optimizer/plan/analyzejoins.c index 3349980b9c7..5e6064cb401 100644 --- a/src/backend/optimizer/plan/analyzejoins.c +++ b/src/backend/optimizer/plan/analyzejoins.c @@ -126,13 +126,15 @@ remove_useless_outer_joins(PlannerInfo *root) * As in pull_up_simple_subquery, discard no-longer-needed subqueries. * This is not just an optimization, but is necessary to prevent * subsequent processing from descending into stale subtrees and - * seeing inconsistent data. Likewise discard any securityQuals of - * the removed rel. (Although simple_rte_array[] will be rebuilt - * shortly, we can still use it to find the RTE in the parse tree.) + * seeing inconsistent data. For the same reason, discard any + * tablesample and securityQuals subtrees of the removed rel. + * (Although simple_rte_array[] will be rebuilt shortly, we can still + * use it to find the RTE in the parse tree.) */ rte = root->simple_rte_array[innerrelid]; if (rte->rtekind == RTE_SUBQUERY) rte->subquery = NULL; + rte->tablesample = NULL; rte->securityQuals = NIL; /*