diff --git a/src/backend/distributed/planner/multi_logical_optimizer.c b/src/backend/distributed/planner/multi_logical_optimizer.c index bffaf4d1a..06f61ad9a 100644 --- a/src/backend/distributed/planner/multi_logical_optimizer.c +++ b/src/backend/distributed/planner/multi_logical_optimizer.c @@ -1409,11 +1409,10 @@ MasterExtendedOpNode(MultiExtendedOp *originalOpNode, ListCell *targetEntryCell = NULL; Node *originalHavingQual = originalOpNode->havingQual; Node *newHavingQual = NULL; - MasterAggregateWalkerContext *walkerContext = palloc0( - sizeof(MasterAggregateWalkerContext)); + MasterAggregateWalkerContext walkerContext = { 0 }; - walkerContext->extendedOpNodeProperties = extendedOpNodeProperties; - walkerContext->columnId = 1; + walkerContext.extendedOpNodeProperties = extendedOpNodeProperties; + walkerContext.columnId = 1; /* iterate over original target entries */ foreach(targetEntryCell, targetEntryList) @@ -1434,7 +1433,7 @@ MasterExtendedOpNode(MultiExtendedOp *originalOpNode, !extendedOpNodeProperties->groupedByDisjointPartitionColumn) { Node *newNode = MasterAggregateMutator((Node *) originalExpression, - walkerContext); + &walkerContext); newExpression = (Expr *) newNode; } else @@ -1447,9 +1446,9 @@ MasterExtendedOpNode(MultiExtendedOp *originalOpNode, const uint32 masterTableId = 1; /* only one table on master node */ Var *column = makeVarFromTargetEntry(masterTableId, originalTargetEntry); - column->varattno = walkerContext->columnId; - column->varoattno = walkerContext->columnId; - walkerContext->columnId++; + column->varattno = walkerContext.columnId; + column->varoattno = walkerContext.columnId; + walkerContext.columnId++; if (column->vartype == RECORDOID || column->vartype == RECORDARRAYOID) { @@ -1473,7 +1472,7 @@ MasterExtendedOpNode(MultiExtendedOp *originalOpNode, if (originalHavingQual != NULL) { - newHavingQual = MasterAggregateMutator(originalHavingQual, walkerContext); + newHavingQual = MasterAggregateMutator(originalHavingQual, &walkerContext); } } @@ -2309,11 +2308,10 @@ ProcessTargetListForWorkerQuery(List *targetEntryList, QueryGroupClause *queryGroupClause) { ListCell *targetEntryCell = NULL; - WorkerAggregateWalkerContext *workerAggContext = - palloc0(sizeof(WorkerAggregateWalkerContext)); + WorkerAggregateWalkerContext workerAggContext = { 0 }; - workerAggContext->extendedOpNodeProperties = extendedOpNodeProperties; - workerAggContext->expressionList = NIL; + workerAggContext.extendedOpNodeProperties = extendedOpNodeProperties; + workerAggContext.expressionList = NIL; /* iterate over original target entries */ foreach(targetEntryCell, targetEntryList) @@ -2325,8 +2323,8 @@ ProcessTargetListForWorkerQuery(List *targetEntryList, bool hasWindowFunction = contain_window_function((Node *) originalExpression); /* reset walker context */ - workerAggContext->expressionList = NIL; - workerAggContext->createGroupByClause = false; + workerAggContext.expressionList = NIL; + workerAggContext.createGroupByClause = false; /* * If the query has a window function, we currently assume it's safe to push @@ -2339,9 +2337,9 @@ ProcessTargetListForWorkerQuery(List *targetEntryList, if (!hasWindowFunction && hasAggregates && !extendedOpNodeProperties->groupedByDisjointPartitionColumn) { - WorkerAggregateWalker((Node *) originalExpression, workerAggContext); + WorkerAggregateWalker((Node *) originalExpression, &workerAggContext); - newExpressionList = workerAggContext->expressionList; + newExpressionList = workerAggContext.expressionList; } else { @@ -2349,7 +2347,7 @@ ProcessTargetListForWorkerQuery(List *targetEntryList, } ExpandWorkerTargetEntry(newExpressionList, originalTargetEntry, - workerAggContext->createGroupByClause, + workerAggContext.createGroupByClause, queryTargetList, queryGroupClause); } } diff --git a/src/backend/distributed/planner/multi_physical_planner.c b/src/backend/distributed/planner/multi_physical_planner.c index a7e5401e8..1b9046145 100644 --- a/src/backend/distributed/planner/multi_physical_planner.c +++ b/src/backend/distributed/planner/multi_physical_planner.c @@ -3953,7 +3953,7 @@ DatumArrayString(Datum *datumArray, uint32 datumCount, Oid datumTypeId) /* convert the array object to its string representation */ FmgrInfo *arrayOutFunction = (FmgrInfo *) palloc0(sizeof(FmgrInfo)); - fmgr_info(ARRAY_OUT_FUNC_ID, arrayOutFunction); + fmgr_info(F_ARRAY_OUT, arrayOutFunction); Datum arrayStringDatum = FunctionCall1(arrayOutFunction, arrayObjectDatum); char *arrayString = DatumGetCString(arrayStringDatum); diff --git a/src/include/distributed/multi_physical_planner.h b/src/include/distributed/multi_physical_planner.h index a9045bb50..126316440 100644 --- a/src/include/distributed/multi_physical_planner.h +++ b/src/include/distributed/multi_physical_planner.h @@ -30,7 +30,6 @@ /* Definitions local to the physical planner */ -#define ARRAY_OUT_FUNC_ID 751 #define NON_PRUNABLE_JOIN -1 #define RESERVED_HASHED_COLUMN_ID MaxAttrNumber #define MERGE_COLUMN_FORMAT "merge_column_%u"