From 5e835e7565d824fd4110e230b92be00433b42653 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20Dub=C3=A9?= Date: Tue, 30 Jul 2019 00:42:01 +0000 Subject: [PATCH] Fix multi_repair_shards. There's already a group/shardid entry, pg11 gives us back the inserted one, pg12 gives us the preexisting one --- src/test/regress/expected/multi_repair_shards.out | 8 +++----- src/test/regress/sql/multi_repair_shards.sql | 9 +++------ 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/test/regress/expected/multi_repair_shards.out b/src/test/regress/expected/multi_repair_shards.out index 89617f1e3..17a9c45eb 100644 --- a/src/test/regress/expected/multi_repair_shards.out +++ b/src/test/regress/expected/multi_repair_shards.out @@ -66,13 +66,11 @@ SELECT master_copy_shard_placement(:newshardid, 'localhost', :worker_1_port, 'lo INSERT INTO customer_engagements VALUES (4, '04-01-2015', 'fourth event'); ROLLBACK; --- add a fake healthy placement for the tests -INSERT INTO pg_dist_placement (groupid, shardid, shardstate, shardlength) - VALUES (:worker_2_group, :newshardid, 1, 0); +-- deactivate placement +UPDATE pg_dist_placement SET shardstate = 1 WHERE groupid = :worker_2_group and shardid = :newshardid; SELECT master_copy_shard_placement(:newshardid, 'localhost', :worker_1_port, 'localhost', :worker_2_port); ERROR: target placement must be in inactive state -DELETE FROM pg_dist_placement - WHERE groupid = :worker_2_group AND shardid = :newshardid AND shardstate = 1; +UPDATE pg_dist_placement SET shardstate = 3 WHERE groupid = :worker_2_group and shardid = :newshardid; -- also try to copy from an inactive placement SELECT master_copy_shard_placement(:newshardid, 'localhost', :worker_2_port, 'localhost', :worker_1_port); ERROR: source placement must be in finalized state diff --git a/src/test/regress/sql/multi_repair_shards.sql b/src/test/regress/sql/multi_repair_shards.sql index 2d087d78f..c33202962 100644 --- a/src/test/regress/sql/multi_repair_shards.sql +++ b/src/test/regress/sql/multi_repair_shards.sql @@ -62,15 +62,12 @@ SELECT master_copy_shard_placement(:newshardid, 'localhost', :worker_1_port, 'lo INSERT INTO customer_engagements VALUES (4, '04-01-2015', 'fourth event'); ROLLBACK; --- add a fake healthy placement for the tests - -INSERT INTO pg_dist_placement (groupid, shardid, shardstate, shardlength) - VALUES (:worker_2_group, :newshardid, 1, 0); +-- deactivate placement +UPDATE pg_dist_placement SET shardstate = 1 WHERE groupid = :worker_2_group and shardid = :newshardid; SELECT master_copy_shard_placement(:newshardid, 'localhost', :worker_1_port, 'localhost', :worker_2_port); -DELETE FROM pg_dist_placement - WHERE groupid = :worker_2_group AND shardid = :newshardid AND shardstate = 1; +UPDATE pg_dist_placement SET shardstate = 3 WHERE groupid = :worker_2_group and shardid = :newshardid; -- also try to copy from an inactive placement SELECT master_copy_shard_placement(:newshardid, 'localhost', :worker_2_port, 'localhost', :worker_1_port);