From 3beb388119669d2a719e955391a246a110fef5fe Mon Sep 17 00:00:00 2001 From: shihao zhong Date: Tue, 13 Oct 2026 23:37:23 -0400 Subject: [PATCH v2 1/3] Clear tablesample of a removed rel in join removal. A removed rel kept its TABLESAMPLE arguments, which could still point at other rels. After the planner restarted, removing those rels hit an assertion in ChangeVarNodes. Clear the field like subquery and securityQuals. --- src/backend/optimizer/plan/analyzejoins.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/backend/optimizer/plan/analyzejoins.c b/src/backend/optimizer/plan/analyzejoins.c index 1fafca57004..4d13e9e9717 100644 --- a/src/backend/optimizer/plan/analyzejoins.c +++ b/src/backend/optimizer/plan/analyzejoins.c @@ -159,6 +159,7 @@ remove_useless_outer_joins(PlannerInfo *root) if (rte->rtekind == RTE_SUBQUERY) rte->subquery = NULL; rte->securityQuals = NIL; + rte->tablesample = NULL; /* * It's okay to keep scanning join_info_list for more removable joins, -- 2.37.1 (Apple Git-137.1)