From 006c8eacc0531ba3952fe020f829d5a4f747bbea Mon Sep 17 00:00:00 2001 From: Marco Slot Date: Tue, 23 Aug 2022 23:11:33 +0200 Subject: [PATCH] Verify that we can replicate reference tables using rebalancer --- .../multi_replicate_reference_table.out | 20 +++++++++++++++++++ .../sql/multi_replicate_reference_table.sql | 7 +++++++ 2 files changed, 27 insertions(+) diff --git a/src/test/regress/expected/multi_replicate_reference_table.out b/src/test/regress/expected/multi_replicate_reference_table.out index 7bc282c51..783b9301e 100644 --- a/src/test/regress/expected/multi_replicate_reference_table.out +++ b/src/test/regress/expected/multi_replicate_reference_table.out @@ -774,6 +774,7 @@ SELECT 1 FROM master_remove_node('localhost', :worker_2_port); (1 row) CREATE TABLE ref_table(a int); +CREATE INDEX ON ref_table (a); SELECT create_reference_table('ref_table'); create_reference_table --------------------------------------------------------------------- @@ -995,6 +996,25 @@ WHERE nodeport=:worker_1_port; 0 (1 row) +-- test that we can use non-blocking rebalance +SELECT 1 FROM master_remove_node('localhost', :worker_2_port); + ?column? +--------------------------------------------------------------------- + 1 +(1 row) + +SELECT 1 FROM master_add_node('localhost', :worker_2_port); + ?column? +--------------------------------------------------------------------- + 1 +(1 row) + +SELECT rebalance_table_shards(shard_transfer_mode := 'force_logical'); + rebalance_table_shards +--------------------------------------------------------------------- + +(1 row) + -- test that metadata is synced on replicate_reference_tables SELECT 1 FROM master_remove_node('localhost', :worker_2_port); ?column? diff --git a/src/test/regress/sql/multi_replicate_reference_table.sql b/src/test/regress/sql/multi_replicate_reference_table.sql index 3e0acbc1c..460a02f29 100644 --- a/src/test/regress/sql/multi_replicate_reference_table.sql +++ b/src/test/regress/sql/multi_replicate_reference_table.sql @@ -506,6 +506,7 @@ ORDER BY 1,4,5; SELECT 1 FROM master_remove_node('localhost', :worker_2_port); CREATE TABLE ref_table(a int); +CREATE INDEX ON ref_table (a); SELECT create_reference_table('ref_table'); INSERT INTO ref_table SELECT * FROM generate_series(1, 10); @@ -611,6 +612,12 @@ SELECT result::int - :ref_table_placements FROM run_command_on_workers('SELECT count(*) FROM pg_dist_placement a, pg_dist_shard b, pg_class c WHERE a.shardid=b.shardid AND b.logicalrelid=c.oid AND c.relname=''ref_table''') WHERE nodeport=:worker_1_port; +-- test that we can use non-blocking rebalance +SELECT 1 FROM master_remove_node('localhost', :worker_2_port); +SELECT 1 FROM master_add_node('localhost', :worker_2_port); + +SELECT rebalance_table_shards(shard_transfer_mode := 'force_logical'); + -- test that metadata is synced on replicate_reference_tables SELECT 1 FROM master_remove_node('localhost', :worker_2_port); SELECT 1 FROM master_add_node('localhost', :worker_2_port);