From 111dbbd325cf1343a83c46c7922e44f0e42a3135 Mon Sep 17 00:00:00 2001 From: shihao zhong Date: Mon, 12 Oct 2026 03:07:24 -0400 Subject: [PATCH v1 2/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)