From a74232bb398d4251ffc21dbc6f34ea2338973c10 Mon Sep 17 00:00:00 2001 From: aykutbozkurt Date: Tue, 21 Mar 2023 14:32:24 +0300 Subject: [PATCH] =?UTF-8?q?PR=20#6728=20=C2=A0/=20commit=20-=209?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Do not enforce distributed transaction at `EnsureCoordinatorInitiatedOperation`. --- .../distributed/metadata/metadata_sync.c | 1 - .../distributed/transaction/backend_data.c | 17 ----------------- src/include/distributed/backend_data.h | 1 - .../regress/expected/metadata_sync_helpers.out | 9 --------- src/test/regress/sql/metadata_sync_helpers.sql | 9 --------- 5 files changed, 37 deletions(-) diff --git a/src/backend/distributed/metadata/metadata_sync.c b/src/backend/distributed/metadata/metadata_sync.c index ed89cf2c3..1b2a8b84f 100644 --- a/src/backend/distributed/metadata/metadata_sync.c +++ b/src/backend/distributed/metadata/metadata_sync.c @@ -3241,7 +3241,6 @@ EnsureCoordinatorInitiatedOperation(void) * by the coordinator. */ if (!(IsCitusInternalBackend() || IsRebalancerInternalBackend()) || - !MyBackendIsInDisributedTransaction() || GetLocalGroupId() == COORDINATOR_GROUP_ID) { ereport(ERROR, (errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), diff --git a/src/backend/distributed/transaction/backend_data.c b/src/backend/distributed/transaction/backend_data.c index 5c554ef06..fc89fde9a 100644 --- a/src/backend/distributed/transaction/backend_data.c +++ b/src/backend/distributed/transaction/backend_data.c @@ -1270,23 +1270,6 @@ MyBackendGotCancelledDueToDeadlock(bool clearState) } -/* - * MyBackendIsInDisributedTransaction returns true if MyBackendData - * is in a distributed transaction. - */ -bool -MyBackendIsInDisributedTransaction(void) -{ - /* backend might not have used citus yet and thus not initialized backend data */ - if (!MyBackendData) - { - return false; - } - - return IsInDistributedTransaction(MyBackendData); -} - - /* * ActiveDistributedTransactionNumbers returns a list of pointers to * transaction numbers of distributed transactions that are in progress diff --git a/src/include/distributed/backend_data.h b/src/include/distributed/backend_data.h index 51bbb0368..1fcd31141 100644 --- a/src/include/distributed/backend_data.h +++ b/src/include/distributed/backend_data.h @@ -66,7 +66,6 @@ extern int ExtractProcessIdFromGlobalPID(uint64 globalPID); extern void GetBackendDataForProc(PGPROC *proc, BackendData *result); extern void CancelTransactionDueToDeadlock(PGPROC *proc); extern bool MyBackendGotCancelledDueToDeadlock(bool clearState); -extern bool MyBackendIsInDisributedTransaction(void); extern List * ActiveDistributedTransactionNumbers(void); extern LocalTransactionId GetMyProcLocalTransactionId(void); extern int GetExternalClientBackendCount(void); diff --git a/src/test/regress/expected/metadata_sync_helpers.out b/src/test/regress/expected/metadata_sync_helpers.out index ae2f9a04b..f745b0fe2 100644 --- a/src/test/regress/expected/metadata_sync_helpers.out +++ b/src/test/regress/expected/metadata_sync_helpers.out @@ -1197,15 +1197,6 @@ BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED; SELECT citus_internal_delete_shard_metadata(shardid) FROM shard_data; ERROR: must be owner of table super_user_table ROLLBACK; --- the user only allowed to delete shards in a distributed transaction -BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED; - SET application_name to 'citus_internal gpid=10000000001'; - \set VERBOSITY terse - WITH shard_data(shardid) - AS (VALUES (1420007)) - SELECT citus_internal_delete_shard_metadata(shardid) FROM shard_data; -ERROR: This is an internal Citus function can only be used in a distributed transaction -ROLLBACK; -- the user cannot delete non-existing shards BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED; SELECT assign_distributed_transaction_id(0, 8, '2021-07-09 15:41:55.542377+02'); diff --git a/src/test/regress/sql/metadata_sync_helpers.sql b/src/test/regress/sql/metadata_sync_helpers.sql index 856ec0bfb..1c5d5b15d 100644 --- a/src/test/regress/sql/metadata_sync_helpers.sql +++ b/src/test/regress/sql/metadata_sync_helpers.sql @@ -749,15 +749,6 @@ BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED; SELECT citus_internal_delete_shard_metadata(shardid) FROM shard_data; ROLLBACK; --- the user only allowed to delete shards in a distributed transaction -BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED; - SET application_name to 'citus_internal gpid=10000000001'; - \set VERBOSITY terse - WITH shard_data(shardid) - AS (VALUES (1420007)) - SELECT citus_internal_delete_shard_metadata(shardid) FROM shard_data; -ROLLBACK; - -- the user cannot delete non-existing shards BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED; SELECT assign_distributed_transaction_id(0, 8, '2021-07-09 15:41:55.542377+02');