mirror of https://github.com/citusdata/citus.git
[performance improvement] remove duplicate LoadShardList call
LoadShardList is called twice, which is not neccessary, and there is no need to sort the shard placement list since we only want to know the list length. Signed-off-by: Zhao Junwang <zhjwpku@gmail.com>pull/7380/head
parent
dbdde111c1
commit
8a66445d03
|
@ -380,7 +380,7 @@ EnsureModificationsCanRun(void)
|
|||
|
||||
|
||||
/*
|
||||
* EnsureModificationsCanRunOnRelation firsts calls into EnsureModificationsCanRun() and
|
||||
* EnsureModificationsCanRunOnRelation first calls into EnsureModificationsCanRun() and
|
||||
* then does one more additional check. The additional check is to give a proper error
|
||||
* message if any relation that is modified is replicated, as replicated tables use
|
||||
* 2PC and 2PC cannot happen when recovery is in progress.
|
||||
|
|
|
@ -362,10 +362,8 @@ ErrorIfShardPlacementsNotColocated(Oid leftRelationId, Oid rightRelationId)
|
|||
leftRelationName, rightRelationName)));
|
||||
}
|
||||
|
||||
List *leftPlacementList = ShardPlacementListSortedByWorker(
|
||||
leftShardId);
|
||||
List *rightPlacementList = ShardPlacementListSortedByWorker(
|
||||
rightShardId);
|
||||
List *leftPlacementList = ShardPlacementList(leftShardId);
|
||||
List *rightPlacementList = ShardPlacementList(rightShardId);
|
||||
|
||||
if (list_length(leftPlacementList) != list_length(rightPlacementList))
|
||||
{
|
||||
|
|
|
@ -470,12 +470,11 @@ SingleReplicatedTable(Oid relationId)
|
|||
return false;
|
||||
}
|
||||
|
||||
List *shardIntervalList = LoadShardList(relationId);
|
||||
uint64 *shardIdPointer = NULL;
|
||||
foreach_ptr(shardIdPointer, shardIntervalList)
|
||||
foreach_ptr(shardIdPointer, shardList)
|
||||
{
|
||||
uint64 shardId = *shardIdPointer;
|
||||
shardPlacementList = ShardPlacementListSortedByWorker(shardId);
|
||||
shardPlacementList = ShardPlacementList(shardId);
|
||||
|
||||
if (list_length(shardPlacementList) != 1)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue