From bb26c3b9f75bb0b5d045f4fdfea18e0f4f391191 Mon Sep 17 00:00:00 2001 From: Jelte Fennema Date: Wed, 9 Jun 2021 12:45:20 +0200 Subject: [PATCH] Refactor TargetListOnPartitionColumn --- .../planner/multi_logical_planner.c | 29 +++++++------------ 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/src/backend/distributed/planner/multi_logical_planner.c b/src/backend/distributed/planner/multi_logical_planner.c index e72150d5a..c7e441e06 100644 --- a/src/backend/distributed/planner/multi_logical_planner.c +++ b/src/backend/distributed/planner/multi_logical_planner.c @@ -206,13 +206,11 @@ FindNodeMatchingCheckFunction(Node *node, CheckNodeFunc checker) bool TargetListOnPartitionColumn(Query *query, List *targetEntryList) { - bool targetListOnPartitionColumn = false; List *compositeFieldList = NIL; - ListCell *targetEntryCell = NULL; - foreach(targetEntryCell, targetEntryList) + TargetEntry *targetEntry = NULL; + foreach_ptr(targetEntry, targetEntryList) { - TargetEntry *targetEntry = (TargetEntry *) lfirst(targetEntryCell); Expr *targetExpression = targetEntry->expr; bool isPartitionColumn = IsPartitionColumn(targetExpression, query); @@ -240,36 +238,29 @@ TargetListOnPartitionColumn(Query *query, List *targetEntryList) } else { - targetListOnPartitionColumn = true; - break; + return true; } } } /* check composite fields */ - if (!targetListOnPartitionColumn) + bool fullCompositeFieldList = FullCompositeFieldList(compositeFieldList); + if (fullCompositeFieldList) { - bool fullCompositeFieldList = FullCompositeFieldList(compositeFieldList); - if (fullCompositeFieldList) - { - targetListOnPartitionColumn = true; - } + return true; } /* * We could still behave as if the target list is on partition column if * range table entries don't contain a distributed table. */ - if (!targetListOnPartitionColumn) + if (!FindNodeMatchingCheckFunctionInRangeTableList(query->rtable, + IsDistributedTableRTE)) { - if (!FindNodeMatchingCheckFunctionInRangeTableList(query->rtable, - IsDistributedTableRTE)) - { - targetListOnPartitionColumn = true; - } + return true; } - return targetListOnPartitionColumn; + return false; }