From ea9eb103e05429b7b59cac7e9516bb617456eb68 Mon Sep 17 00:00:00 2001 From: Sameer Awasekar Date: Wed, 29 Jun 2022 17:03:03 +0530 Subject: [PATCH] Fix nits --- src/backend/distributed/shardsplit/shardsplit_decoder.c | 8 ++++---- .../distributed/shardsplit/shardsplit_shared_memory.c | 8 ++++---- .../udfs/worker_split_shard_replication_setup/11.0-2.sql | 4 ---- .../udfs/worker_split_shard_replication_setup/latest.sql | 4 ---- src/include/distributed/shardsplit_shared_memory.h | 3 ++- 5 files changed, 10 insertions(+), 17 deletions(-) diff --git a/src/backend/distributed/shardsplit/shardsplit_decoder.c b/src/backend/distributed/shardsplit/shardsplit_decoder.c index 87f2d8f2a..54042ed57 100644 --- a/src/backend/distributed/shardsplit/shardsplit_decoder.c +++ b/src/backend/distributed/shardsplit/shardsplit_decoder.c @@ -3,8 +3,7 @@ * shardsplit_decoder.c * Logical Replication output plugin * - * IDENTIFICATION - * src/backend/distributed/shardsplit/shardsplit_decoder.c + * Copyright (c) Citus Data, Inc. * *------------------------------------------------------------------------- */ @@ -80,6 +79,8 @@ split_change_cb(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, return; } + char *replicationSlotName = ctx->slot->data.name.data; + /* * Initialize SourceToDestinationShardMap if not already initialized. * This gets initialized during the replication of first message. @@ -87,11 +88,10 @@ split_change_cb(LogicalDecodingContext *ctx, ReorderBufferTXN *txn, if (SourceToDestinationShardMap == NULL) { SourceToDestinationShardMap = PopulateSourceToDestinationShardMapForSlot( - ctx->slot->data.name.data); + replicationSlotName, TopMemoryContext); } Oid targetRelationOid = InvalidOid; - char *replicationSlotName = ctx->slot->data.name.data; switch (change->action) { case REORDER_BUFFER_CHANGE_INSERT: diff --git a/src/backend/distributed/shardsplit/shardsplit_shared_memory.c b/src/backend/distributed/shardsplit/shardsplit_shared_memory.c index b96ead387..c6eb9bc0d 100644 --- a/src/backend/distributed/shardsplit/shardsplit_shared_memory.c +++ b/src/backend/distributed/shardsplit/shardsplit_shared_memory.c @@ -236,7 +236,7 @@ ShardSplitShmemInit(void) if (!alreadyInitialized) { - char *trancheName = "Split_Shard_Setup_Tranche"; + char *trancheName = "Split Shard Setup Tranche"; NamedLWLockTranche *namedLockTranche = &smData->namedLockTranche; @@ -341,20 +341,20 @@ GetShardSplitSharedMemoryHandle(void) * To populate the map, the function traverses 'ShardSplitInfo' array stored within shared memory segment. */ HTAB * -PopulateSourceToDestinationShardMapForSlot(char *slotName) +PopulateSourceToDestinationShardMapForSlot(char *slotName, MemoryContext cxt) { HASHCTL info; memset(&info, 0, sizeof(info)); info.keysize = sizeof(Oid); info.entrysize = sizeof(SourceToDestinationShardMapEntry); info.hash = uint32_hash; - info.hcxt = TopMemoryContext; + info.hcxt = cxt; int hashFlags = (HASH_ELEM | HASH_CONTEXT | HASH_FUNCTION); HTAB *sourceShardToDesShardMap = hash_create("SourceToDestinationShardMap", 128, &info, hashFlags); - MemoryContext oldContext = MemoryContextSwitchTo(TopMemoryContext); + MemoryContext oldContext = MemoryContextSwitchTo(cxt); ShardSplitInfoSMHeader *smHeader = GetShardSplitInfoSMHeader(); for (int index = 0; index < smHeader->count; index++) diff --git a/src/backend/distributed/sql/udfs/worker_split_shard_replication_setup/11.0-2.sql b/src/backend/distributed/sql/udfs/worker_split_shard_replication_setup/11.0-2.sql index 5021a2baf..8d5e8fae3 100644 --- a/src/backend/distributed/sql/udfs/worker_split_shard_replication_setup/11.0-2.sql +++ b/src/backend/distributed/sql/udfs/worker_split_shard_replication_setup/11.0-2.sql @@ -1,7 +1,3 @@ -DROP TYPE IF EXISTS citus.split_shard_info; - -DROP FUNCTION IF EXISTS pg_catalog.worker_split_shard_replication_setup; - CREATE TYPE citus.split_shard_info AS ( source_shard_id bigint, child_shard_id bigint, diff --git a/src/backend/distributed/sql/udfs/worker_split_shard_replication_setup/latest.sql b/src/backend/distributed/sql/udfs/worker_split_shard_replication_setup/latest.sql index 5021a2baf..8d5e8fae3 100644 --- a/src/backend/distributed/sql/udfs/worker_split_shard_replication_setup/latest.sql +++ b/src/backend/distributed/sql/udfs/worker_split_shard_replication_setup/latest.sql @@ -1,7 +1,3 @@ -DROP TYPE IF EXISTS citus.split_shard_info; - -DROP FUNCTION IF EXISTS pg_catalog.worker_split_shard_replication_setup; - CREATE TYPE citus.split_shard_info AS ( source_shard_id bigint, child_shard_id bigint, diff --git a/src/include/distributed/shardsplit_shared_memory.h b/src/include/distributed/shardsplit_shared_memory.h index a553686c8..3dbbc7450 100644 --- a/src/include/distributed/shardsplit_shared_memory.h +++ b/src/include/distributed/shardsplit_shared_memory.h @@ -62,7 +62,8 @@ extern void ReleaseSharedMemoryOfShardSplitInfo(void); extern ShardSplitInfoSMHeader * GetShardSplitInfoSMHeader(void); -extern HTAB * PopulateSourceToDestinationShardMapForSlot(char *slotName); +extern HTAB * PopulateSourceToDestinationShardMapForSlot(char *slotName, MemoryContext + cxt); char * encode_replication_slot(uint32_t nodeId, uint32_t tableOwnerId); #endif /* SHARDSPLIT_SHARED_MEMORY_H */