From 2b306069703c3d917ef9b5baae5e1d9c15174e28 Mon Sep 17 00:00:00 2001 From: Mehmet Yilmaz Date: Fri, 4 Jul 2025 08:16:49 +0000 Subject: [PATCH] Improve safety check in FindReferencedTableColumn to assert valid groupIndex --- src/backend/distributed/planner/multi_logical_optimizer.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/backend/distributed/planner/multi_logical_optimizer.c b/src/backend/distributed/planner/multi_logical_optimizer.c index 1fecb04c8..7deced084 100644 --- a/src/backend/distributed/planner/multi_logical_optimizer.c +++ b/src/backend/distributed/planner/multi_logical_optimizer.c @@ -4568,11 +4568,9 @@ FindReferencedTableColumn(Expr *columnExpression, List *parentQueryList, Query * List *groupexprs = rangeTableEntry->groupexprs; AttrNumber groupIndex = candidateColumn->varattno - 1; - /* Safety check */ - if (groupIndex < 0 || groupIndex >= list_length(groupexprs)) - { - return; /* malformed Var */ - } + /* this must always hold unless upstream Postgres mis-constructed the RTE_GROUP */ + Assert(groupIndex >= 0 && groupIndex < list_length(groupexprs)); + Expr *groupExpr = (Expr *) list_nth(groupexprs, groupIndex); /* Recurse on the underlying expression (stay in the same query) */