From 8f8761ed407a663fe5b9e3c9795b43d98a5578f8 Mon Sep 17 00:00:00 2001 From: Nitish Upreti Date: Mon, 11 Jul 2022 17:45:32 -0700 Subject: [PATCH] Fix null handling when creating AuxiliaryStructures --- src/backend/distributed/operations/shard_split.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/backend/distributed/operations/shard_split.c b/src/backend/distributed/operations/shard_split.c index 22cbbbc97..a2ba24df4 100644 --- a/src/backend/distributed/operations/shard_split.c +++ b/src/backend/distributed/operations/shard_split.c @@ -558,11 +558,18 @@ CreateAuxiliaryStructuresForShardGroup(List *shardGroupSplitIntervalListList, ddlCommandList, shardInterval->shardId); - uint64 jobId = shardInterval->shardId; - Task *ddlTask = CreateTaskForDDLCommandList(jobId, ddlCommandList, - workerPlacementNode); + /* + * A task is expected to be instantiated with a non-null 'ddlCommandList'. + * The list can be empty, if no auxiliary structures are present. + */ + if (ddlCommandList != NULL) + { + uint64 jobId = shardInterval->shardId; + Task *ddlTask = CreateTaskForDDLCommandList(jobId, ddlCommandList, + workerPlacementNode); - ddlTaskExecList = lappend(ddlTaskExecList, ddlTask); + ddlTaskExecList = lappend(ddlTaskExecList, ddlTask); + } } }