diff --git a/src/backend/distributed/shared_library_init.c b/src/backend/distributed/shared_library_init.c index c52437dbb..98c88c184 100644 --- a/src/backend/distributed/shared_library_init.c +++ b/src/backend/distributed/shared_library_init.c @@ -155,7 +155,7 @@ _PG_init(void) /* initialize transaction callbacks */ RegisterRouterExecutorXactCallbacks(); - InstallMultiShardXactShmemHook(); + RegisterShardPlacementXactCallbacks(); } diff --git a/src/backend/distributed/transaction/multi_shard_transaction.c b/src/backend/distributed/transaction/multi_shard_transaction.c index 92b66f786..712beaa5e 100644 --- a/src/backend/distributed/transaction/multi_shard_transaction.c +++ b/src/backend/distributed/transaction/multi_shard_transaction.c @@ -27,11 +27,9 @@ /* Global variables used in commit handler */ static HTAB *shardConnectionHash = NULL; -static shmem_startup_hook_type prev_shmem_startup_hook = NULL; static bool subXactAbortAttempted = false; /* functions needed by callbacks and hooks */ -static void RegisterShardPlacementXactCallbacks(void); static void CompleteShardPlacementTransactions(XactEvent event, void *arg); static void MultiShardSubXactCallback(SubXactEvent event, SubTransactionId subId, SubTransactionId parentSubid, void *arg); @@ -229,32 +227,14 @@ ConnectionList(HTAB *connectionHash) /* - * InstallMultiShardXactShmemHook simply installs a hook (intended to be called - * once during backend startup), which will itself register all the transaction - * callbacks needed by multi-shard transaction logic. + * RegisterShardPlacementXactCallbacks registers transaction callbacks needed + * for multi-shard transactions. */ void -InstallMultiShardXactShmemHook(void) -{ - prev_shmem_startup_hook = shmem_startup_hook; - shmem_startup_hook = RegisterShardPlacementXactCallbacks; -} - - -/* - * RegisterShardPlacementXactCallbacks registers transaction callbacks needed - * for multi-shard transactions before calling previous shmem startup hooks. - */ -static void RegisterShardPlacementXactCallbacks(void) { RegisterXactCallback(CompleteShardPlacementTransactions, NULL); RegisterSubXactCallback(MultiShardSubXactCallback, NULL); - - if (prev_shmem_startup_hook != NULL) - { - prev_shmem_startup_hook(); - } } diff --git a/src/include/distributed/multi_shard_transaction.h b/src/include/distributed/multi_shard_transaction.h index 4b68378d7..4b5ec354a 100644 --- a/src/include/distributed/multi_shard_transaction.h +++ b/src/include/distributed/multi_shard_transaction.h @@ -33,7 +33,7 @@ extern ShardConnections * GetShardHashConnections(HTAB *connectionHash, int64 sh bool *connectionsFound); extern List * ConnectionList(HTAB *connectionHash); extern void CloseConnections(List *connectionList); -extern void InstallMultiShardXactShmemHook(void); +extern void RegisterShardPlacementXactCallbacks(void); #endif /* MULTI_SHARD_TRANSACTION_H */