From dbe2749bbf59d287ea52a87c276f4b3e00f9505f Mon Sep 17 00:00:00 2001 From: Onur Tirtir Date: Fri, 21 Oct 2022 18:04:31 +0300 Subject: [PATCH] Drop unreachable code from query_pushdown_planning.c (#6451) Given that we cannot continue after a `RaiseDeferredErrorInternal(.., ERROR)` call. --- .../planner/query_pushdown_planning.c | 32 ++----------------- 1 file changed, 3 insertions(+), 29 deletions(-) diff --git a/src/backend/distributed/planner/query_pushdown_planning.c b/src/backend/distributed/planner/query_pushdown_planning.c index 5ad7887e9..be8e33ba8 100644 --- a/src/backend/distributed/planner/query_pushdown_planning.c +++ b/src/backend/distributed/planner/query_pushdown_planning.c @@ -521,8 +521,6 @@ MultiNode * SubqueryMultiNodeTree(Query *originalQuery, Query *queryTree, PlannerRestrictionContext *plannerRestrictionContext) { - MultiNode *multiQueryNode = NULL; - /* * This is a generic error check that applies to both subquery pushdown * and single table repartition subquery. @@ -534,39 +532,15 @@ SubqueryMultiNodeTree(Query *originalQuery, Query *queryTree, RaiseDeferredError(unsupportedQueryError, ERROR); } - /* - * In principle, we're first trying subquery pushdown planner. If it fails - * to create a logical plan, continue with trying the single table - * repartition subquery planning. - */ DeferredErrorMessage *subqueryPushdownError = DeferErrorIfUnsupportedSubqueryPushdown( originalQuery, plannerRestrictionContext); - if (!subqueryPushdownError) + if (subqueryPushdownError != NULL) { - multiQueryNode = SubqueryPushdownMultiNodeTree(originalQuery); + RaiseDeferredError(subqueryPushdownError, ERROR); } - else if (subqueryPushdownError) - { - RaiseDeferredErrorInternal(subqueryPushdownError, ERROR); - List *subqueryEntryList = SubqueryEntryList(queryTree); - RangeTblEntry *subqueryRangeTableEntry = (RangeTblEntry *) linitial( - subqueryEntryList); - Assert(subqueryRangeTableEntry->rtekind == RTE_SUBQUERY); - - Query *subqueryTree = subqueryRangeTableEntry->subquery; - - DeferredErrorMessage *repartitionQueryError = - DeferErrorIfUnsupportedSubqueryRepartition(subqueryTree); - if (repartitionQueryError) - { - RaiseDeferredErrorInternal(repartitionQueryError, ERROR); - } - - /* all checks have passed, safe to create the multi plan */ - multiQueryNode = MultiNodeTree(queryTree); - } + MultiNode *multiQueryNode = SubqueryPushdownMultiNodeTree(originalQuery); Assert(multiQueryNode != NULL);