diff --git a/src/backend/distributed/utils/resource_lock.c b/src/backend/distributed/utils/resource_lock.c index 8cf78b1a5..9459db6a7 100644 --- a/src/backend/distributed/utils/resource_lock.c +++ b/src/backend/distributed/utils/resource_lock.c @@ -798,14 +798,7 @@ SerializeNonCommutativeWrites(List *shardIntervalList, LOCKMODE lockMode) static bool AnyTableReplicated(List *shardIntervalList, List **replicatedShardIntervalList) { - if (replicatedShardIntervalList == NULL) - { - /* the caller is not interested in the replicatedShardIntervalList */ - List *localList = NIL; - replicatedShardIntervalList = &localList; - } - - *replicatedShardIntervalList = NIL; + List *localList = NIL; ShardInterval *shardInterval = NULL; foreach_ptr(shardInterval, shardIntervalList) @@ -815,17 +808,22 @@ AnyTableReplicated(List *shardIntervalList, List **replicatedShardIntervalList) Oid relationId = RelationIdForShard(shardId); if (ReferenceTableShardId(shardId)) { - *replicatedShardIntervalList = - lappend(*replicatedShardIntervalList, LoadShardInterval(shardId)); + localList = + lappend(localList, LoadShardInterval(shardId)); } else if (!SingleReplicatedTable(relationId)) { - *replicatedShardIntervalList = - lappend(*replicatedShardIntervalList, LoadShardInterval(shardId)); + localList = + lappend(localList, LoadShardInterval(shardId)); } } - return list_length(*replicatedShardIntervalList) > 0; + if (replicatedShardIntervalList != NULL) + { + *replicatedShardIntervalList = localList; + } + + return list_length(localList) > 0; }