From 5a711a91768ae54b8a223dbb2e5743ca1b0a899a Mon Sep 17 00:00:00 2001 From: Sameer Awasekar Date: Mon, 30 May 2022 23:35:54 +0530 Subject: [PATCH] Address comments - Fix warnings --- .../split_shard_replication_setup.c | 22 +++++++------------ src/backend/distributed/shardsplit/pgoutput.c | 14 ++++++------ .../split_shard_replication_setup.out | 2 +- .../sql/split_shard_replication_setup.sql | 2 +- 4 files changed, 17 insertions(+), 23 deletions(-) diff --git a/src/backend/distributed/operations/split_shard_replication_setup.c b/src/backend/distributed/operations/split_shard_replication_setup.c index 477b796a9..5441da7ee 100644 --- a/src/backend/distributed/operations/split_shard_replication_setup.c +++ b/src/backend/distributed/operations/split_shard_replication_setup.c @@ -43,11 +43,11 @@ static ShardSplitInfo * CreateShardSplitInfo(uint64 sourceShardIdToSplit, int32 maxValue, int32 nodeId); static void AddShardSplitInfoEntryForNodeInMap(ShardSplitInfo *shardSplitInfo); -static void * PopulateShardSplitInfoInSM(ShardSplitInfo *shardSplitInfoArray, - HTAB *shardInfoHashMap, - dsm_handle dsmHandle, - int shardSplitInfoCount); -static void SetupHashMapForShardInfo(); +static void PopulateShardSplitInfoInSM(ShardSplitInfo *shardSplitInfoArray, + HTAB *shardInfoHashMap, + dsm_handle dsmHandle, + int shardSplitInfoCount); +static void SetupHashMapForShardInfo(void); /* * split_shard_replication_setup UDF creates in-memory data structures @@ -171,7 +171,7 @@ ParseShardSplitInfo(ArrayType *shardInfoArrayObject, int32 *nodeId) { Oid elemtypeId = ARR_ELEMTYPE(shardInfoArrayObject); - int elemtypeLength = 0; + int16 elemtypeLength = 0; bool elemtypeByValue = false; char elemtypeAlignment = 0; get_typlenbyvalalign(elemtypeId, &elemtypeLength, &elemtypeByValue, @@ -296,8 +296,6 @@ ParseShardSplitInfo(ArrayType *shardInfoArrayObject, } *nodeId = DatumGetInt32(nodeIdDat); - - PG_RETURN_VOID(); } @@ -385,7 +383,7 @@ CreateShardSplitInfo(uint64 sourceShardIdToSplit, * AddShardSplitInfoEntryForNodeInMap function add's ShardSplitInfo entry * to the hash map. The key is nodeId on which the new shard is to be placed. */ -void +static void AddShardSplitInfoEntryForNodeInMap(ShardSplitInfo *shardSplitInfo) { uint32_t keyNodeId = shardSplitInfo->nodeId; @@ -402,8 +400,6 @@ AddShardSplitInfoEntryForNodeInMap(ShardSplitInfo *shardSplitInfo) nodeMappingEntry->shardSplitInfoList = lappend(nodeMappingEntry->shardSplitInfoList, (ShardSplitInfo *) shardSplitInfo); - - PG_RETURN_VOID(); } @@ -420,7 +416,7 @@ AddShardSplitInfoEntryForNodeInMap(ShardSplitInfo *shardSplitInfo) * * dsmHandle - Shared memory segment handle */ -void * +static void PopulateShardSplitInfoInSM(ShardSplitInfo *shardSplitInfoArray, HTAB *shardInfoHashMap, dsm_handle dsmHandle, @@ -455,6 +451,4 @@ PopulateShardSplitInfoInSM(ShardSplitInfo *shardSplitInfoArray, index++; } } - - PG_RETURN_VOID(); } diff --git a/src/backend/distributed/shardsplit/pgoutput.c b/src/backend/distributed/shardsplit/pgoutput.c index ac23cf05a..eb91e1962 100644 --- a/src/backend/distributed/shardsplit/pgoutput.c +++ b/src/backend/distributed/shardsplit/pgoutput.c @@ -33,6 +33,10 @@ static int32_t GetHashValueForIncomingTuple(Relation sourceShardRelation, HeapTuple tuple, bool *shouldHandleUpdate); +static Oid FindTargetRelationOid(Relation sourceShardRelation, + HeapTuple tuple, + char *currentSlotName); + void _PG_output_plugin_init(OutputPluginCallbacks *cb) { @@ -132,7 +136,7 @@ GetHashValueForIncomingTuple(Relation sourceShardRelation, * tuple - changed tuple. * currentSlotName - Name of replication slot that is processing this update. */ -Oid +static Oid FindTargetRelationOid(Relation sourceShardRelation, HeapTuple tuple, char *currentSlotName) @@ -185,21 +189,17 @@ FindTargetRelationOid(Relation sourceShardRelation, bool ShouldCommitBeApplied(Relation sourceShardRelation) { - ShardSplitInfo *shardSplitInfo = NULL; - int partitionColumnIndex = -1; - Oid distributedTableOid = InvalidOid; - Oid sourceShardOid = sourceShardRelation->rd_id; for (int i = 0; i < shardSplitInfoArraySize; i++) { /* skip the commit when destination is equal to the source */ - shardSplitInfo = &shardSplitInfoArray[i]; + ShardSplitInfo *shardSplitInfo = &shardSplitInfoArray[i]; if (shardSplitInfo->splitChildShardOid == sourceShardOid) { return false; } } - + return true; } diff --git a/src/test/regress/expected/split_shard_replication_setup.out b/src/test/regress/expected/split_shard_replication_setup.out index 67c0e26a1..5d9cc1d57 100644 --- a/src/test/regress/expected/split_shard_replication_setup.out +++ b/src/test/regress/expected/split_shard_replication_setup.out @@ -37,7 +37,7 @@ SELECT create_distributed_table('slotName_table','id'); -- 5. Create Replication slot with 'decoding_plugin_for_shard_split' -- 6. Setup Pub/Sub -- 7. Insert into table_to_split_1 at source worker1 --- 8. Expect the results in either table_to_split_2 or table_to_split_2 at worker2 +-- 8. Expect the results in either table_to_split_2 or table_to_split_3 at worker2 \c - - - :worker_2_port CREATE TABLE table_to_split_1(id bigserial PRIMARY KEY, value char); CREATE TABLE table_to_split_2(id bigserial PRIMARY KEY, value char); diff --git a/src/test/regress/sql/split_shard_replication_setup.sql b/src/test/regress/sql/split_shard_replication_setup.sql index 82f29d561..c16cb37fb 100644 --- a/src/test/regress/sql/split_shard_replication_setup.sql +++ b/src/test/regress/sql/split_shard_replication_setup.sql @@ -31,7 +31,7 @@ SELECT create_distributed_table('slotName_table','id'); -- 5. Create Replication slot with 'decoding_plugin_for_shard_split' -- 6. Setup Pub/Sub -- 7. Insert into table_to_split_1 at source worker1 --- 8. Expect the results in either table_to_split_2 or table_to_split_2 at worker2 +-- 8. Expect the results in either table_to_split_2 or table_to_split_3 at worker2 \c - - - :worker_2_port CREATE TABLE table_to_split_1(id bigserial PRIMARY KEY, value char);