From 4c46d4b26593cb10b6b972823cce966858f51525 Mon Sep 17 00:00:00 2001 From: Onur Tirtir Date: Thu, 22 Feb 2024 13:07:50 +0300 Subject: [PATCH] use remote nodes instead --- src/backend/distributed/commands/database.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/backend/distributed/commands/database.c b/src/backend/distributed/commands/database.c index 54633e97c..63dfdf603 100644 --- a/src/backend/distributed/commands/database.c +++ b/src/backend/distributed/commands/database.c @@ -508,14 +508,18 @@ PreprocessCreateDatabaseStmt(Node *node, const char *queryString, char *tempDatabaseName = psprintf(TEMP_DATABASE_NAME_FMT, operationId, GetLocalGroupId()); - List *allNodes = TargetWorkerSetNodeList(ALL_SHARD_NODES, RowShareLock); - WorkerNode *workerNode = NULL; - foreach_ptr(workerNode, allNodes) + /* + * Temporary database creation on local node would anyway rollback + * in case of a failure, so only insert the records for remote nodes. + */ + List *remoteNodes = TargetWorkerSetNodeList(REMOTE_NODES, RowShareLock); + WorkerNode *remoteNode = NULL; + foreach_ptr(remoteNode, remoteNodes) { InsertCleanupRecordOutsideTransaction( CLEANUP_OBJECT_DATABASE, pstrdup(quote_identifier(tempDatabaseName)), - workerNode->groupId, + remoteNode->groupId, CLEANUP_ON_FAILURE ); }