From 346422e7be335572328a9fc793c1765285a68bfe Mon Sep 17 00:00:00 2001 From: paragjain Date: Sun, 14 Jul 2024 10:45:16 +0000 Subject: [PATCH] some variable renameing --- src/backend/distributed/planner/merge_planner.c | 5 ++++- src/backend/distributed/planner/query_colocation_checker.c | 7 +++++-- src/backend/distributed/planner/recursive_planning.c | 4 +++- src/include/distributed/query_colocation_checker.h | 3 ++- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/backend/distributed/planner/merge_planner.c b/src/backend/distributed/planner/merge_planner.c index 1f9d17c43..92fea1c9d 100644 --- a/src/backend/distributed/planner/merge_planner.c +++ b/src/backend/distributed/planner/merge_planner.c @@ -857,8 +857,11 @@ 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); + CreateAllTargetListForRelation(sourceRte->relid, requiredAttributes, + isMergeQuery); 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 532be5672..6c34d01a8 100644 --- a/src/backend/distributed/planner/query_colocation_checker.c +++ b/src/backend/distributed/planner/query_colocation_checker.c @@ -325,12 +325,14 @@ WrapRteRelationIntoSubquery(RangeTblEntry *rteRelation, * as a NULL column. */ List * -CreateAllTargetListForRelation(Oid relationId, List *requiredAttributes) +CreateAllTargetListForRelation(Oid relationId, List *requiredAttributes, bool + isMergeQuery) { Relation relation = relation_open(relationId, AccessShareLock); int numberOfAttributes = RelationGetNumberOfAttributes(relation); List *targetList = NIL; + int colAppendIdx = 1; for (int attrNum = 1; attrNum <= numberOfAttributes; attrNum++) { @@ -360,8 +362,9 @@ CreateAllTargetListForRelation(Oid relationId, List *requiredAttributes) } else { + int varAttNum = isMergeQuery ? attrNum : colAppendIdx++; TargetEntry *targetEntry = - CreateTargetEntryForColumn(attributeTuple, SINGLE_RTE_INDEX, attrNum, + CreateTargetEntryForColumn(attributeTuple, SINGLE_RTE_INDEX, varAttNum, resNo); targetList = lappend(targetList, targetEntry); } diff --git a/src/backend/distributed/planner/recursive_planning.c b/src/backend/distributed/planner/recursive_planning.c index 9f520fa5f..f624ce8f6 100644 --- a/src/backend/distributed/planner/recursive_planning.c +++ b/src/backend/distributed/planner/recursive_planning.c @@ -1767,8 +1767,10 @@ ReplaceRTERelationWithRteSubquery(RangeTblEntry *rangeTableEntry, { Query *subquery = WrapRteRelationIntoSubquery(rangeTableEntry, requiredAttrNumbers, perminfo); + bool isMergeQuery = false; List *outerQueryTargetList = CreateAllTargetListForRelation(rangeTableEntry->relid, - requiredAttrNumbers); + requiredAttrNumbers, + isMergeQuery); List *restrictionList = GetRestrictInfoListForRelation(rangeTableEntry, diff --git a/src/include/distributed/query_colocation_checker.h b/src/include/distributed/query_colocation_checker.h index 2a46d364c..ae6062e27 100644 --- a/src/include/distributed/query_colocation_checker.h +++ b/src/include/distributed/query_colocation_checker.h @@ -38,6 +38,7 @@ extern bool SubqueryColocated(Query *subquery, ColocatedJoinChecker *context); extern Query * WrapRteRelationIntoSubquery(RangeTblEntry *rteRelation, List *requiredAttributes, RTEPermissionInfo *perminfo); -extern List * CreateAllTargetListForRelation(Oid relationId, List *requiredAttributes); +extern List * CreateAllTargetListForRelation(Oid relationId, List *requiredAttributes, + bool isMergeQuery); #endif /* QUERY_COLOCATION_CHECKER_H */