diff --git a/src/backend/distributed/planner/merge_planner.c b/src/backend/distributed/planner/merge_planner.c index 92fea1c9d..f8a181546 100644 --- a/src/backend/distributed/planner/merge_planner.c +++ b/src/backend/distributed/planner/merge_planner.c @@ -857,11 +857,8 @@ ConvertRelationRTEIntoSubquery(Query *mergeQuery, RangeTblEntry *sourceRte, /* set the FROM expression to the subquery */ newRangeTableRef->rtindex = SINGLE_RTE_INDEX; sourceResultsQuery->jointree = makeFromExpr(list_make1(newRangeTableRef), NULL); - - bool isMergeQuery = true; sourceResultsQuery->targetList = - CreateAllTargetListForRelation(sourceRte->relid, requiredAttributes, - isMergeQuery); + CreateFilteredTargetListForRelation(sourceRte->relid, requiredAttributes); List *restrictionList = GetRestrictInfoListForRelation(sourceRte, plannerRestrictionContext); List *copyRestrictionList = copyObject(restrictionList); diff --git a/src/backend/distributed/planner/query_colocation_checker.c b/src/backend/distributed/planner/query_colocation_checker.c index 6c34d01a8..d298b0f46 100644 --- a/src/backend/distributed/planner/query_colocation_checker.c +++ b/src/backend/distributed/planner/query_colocation_checker.c @@ -45,8 +45,6 @@ static RangeTblEntry * AnchorRte(Query *subquery); static List * UnionRelationRestrictionLists(List *firstRelationList, List *secondRelationList); -static List * CreateFilteredTargetListForRelation(Oid relationId, - List *requiredAttributes); static List * CreateDummyTargetList(Oid relationId, List *requiredAttributes); static TargetEntry * CreateTargetEntryForColumn(Form_pg_attribute attributeTuple, Index rteIndex, @@ -325,14 +323,13 @@ WrapRteRelationIntoSubquery(RangeTblEntry *rteRelation, * as a NULL column. */ List * -CreateAllTargetListForRelation(Oid relationId, List *requiredAttributes, bool - isMergeQuery) +CreateAllTargetListForRelation(Oid relationId, List *requiredAttributes) { Relation relation = relation_open(relationId, AccessShareLock); int numberOfAttributes = RelationGetNumberOfAttributes(relation); List *targetList = NIL; - int colAppendIdx = 1; + int varAttrNo = 1; for (int attrNum = 1; attrNum <= numberOfAttributes; attrNum++) { @@ -362,9 +359,8 @@ CreateAllTargetListForRelation(Oid relationId, List *requiredAttributes, bool } else { - int varAttNum = isMergeQuery ? attrNum : colAppendIdx++; TargetEntry *targetEntry = - CreateTargetEntryForColumn(attributeTuple, SINGLE_RTE_INDEX, varAttNum, + CreateTargetEntryForColumn(attributeTuple, SINGLE_RTE_INDEX, varAttrNo++, resNo); targetList = lappend(targetList, targetEntry); } @@ -380,7 +376,7 @@ CreateAllTargetListForRelation(Oid relationId, List *requiredAttributes, bool * only the required columns of the given relation. If there is not required * columns then a dummy NULL column is put as the only entry. */ -static List * +List * CreateFilteredTargetListForRelation(Oid relationId, List *requiredAttributes) { Relation relation = relation_open(relationId, AccessShareLock); diff --git a/src/backend/distributed/planner/recursive_planning.c b/src/backend/distributed/planner/recursive_planning.c index 2369128fb..853c07350 100644 --- a/src/backend/distributed/planner/recursive_planning.c +++ b/src/backend/distributed/planner/recursive_planning.c @@ -1768,10 +1768,8 @@ ReplaceRTERelationWithRteSubquery(RangeTblEntry *rangeTableEntry, Query *subquery = WrapRteRelationIntoSubquery(rangeTableEntry, requiredAttrNumbers, perminfo); - bool isMergeQuery = false; List *outerQueryTargetList = CreateAllTargetListForRelation(rangeTableEntry->relid, - requiredAttrNumbers, - isMergeQuery); + requiredAttrNumbers); List *restrictionList = GetRestrictInfoListForRelation(rangeTableEntry, diff --git a/src/include/distributed/query_colocation_checker.h b/src/include/distributed/query_colocation_checker.h index ae6062e27..485e4a033 100644 --- a/src/include/distributed/query_colocation_checker.h +++ b/src/include/distributed/query_colocation_checker.h @@ -38,7 +38,8 @@ extern bool SubqueryColocated(Query *subquery, ColocatedJoinChecker *context); extern Query * WrapRteRelationIntoSubquery(RangeTblEntry *rteRelation, List *requiredAttributes, RTEPermissionInfo *perminfo); -extern List * CreateAllTargetListForRelation(Oid relationId, List *requiredAttributes, - bool isMergeQuery); +extern List * CreateAllTargetListForRelation(Oid relationId, List *requiredAttributes); +extern List * CreateFilteredTargetListForRelation(Oid relationId, + List *requiredAttributes); #endif /* QUERY_COLOCATION_CHECKER_H */