From 8be8d9ceb9bd127f9f5a34b3cb52c0e4090ecd42 Mon Sep 17 00:00:00 2001 From: Onder Kalaci Date: Wed, 14 Sep 2022 18:27:44 +0300 Subject: [PATCH] do not use 1 con per shardid --- .../distributed/operations/shard_split.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/backend/distributed/operations/shard_split.c b/src/backend/distributed/operations/shard_split.c index 4656e798f..f806fe90e 100644 --- a/src/backend/distributed/operations/shard_split.c +++ b/src/backend/distributed/operations/shard_split.c @@ -1016,10 +1016,14 @@ CreateObjectOnPlacement(List *objectCreationCommandList, WorkerNode *workerPlacementNode) { char *currentUser = CurrentUserName(); - SendCommandListToWorkerOutsideTransaction(workerPlacementNode->workerName, - workerPlacementNode->workerPort, - currentUser, - objectCreationCommandList); + int connectionFlags = 0; + + MultiConnection *workerConnection = GetNodeUserDatabaseConnection(connectionFlags, + workerPlacementNode->workerName, workerPlacementNode->workerPort, + currentUser, NULL); + + SendCommandListToWorkerInSeparateTransaction(workerConnection, + objectCreationCommandList); } @@ -2245,7 +2249,7 @@ GetNextShardIdForSplitChild() appendStringInfo(nextValueCommand, "SELECT nextval(%s);", quote_literal_cstr( "pg_catalog.pg_dist_shardid_seq")); - int connectionFlag = FORCE_NEW_CONNECTION; + int connectionFlag = 0; MultiConnection *connection = GetNodeUserDatabaseConnection(connectionFlag, LocalHostName, PostPortNumber, @@ -2269,7 +2273,9 @@ GetNextShardIdForSplitChild() } shardId = SafeStringToUint64(PQgetvalue(result, 0, 0 /* nodeId column*/)); - CloseConnection(connection); + //CloseConnection(connection); + PQclear(result); + ForgetResults(connection); return shardId; }