mirror of https://github.com/citusdata/citus.git
91 lines
2.9 KiB
Plaintext
91 lines
2.9 KiB
Plaintext
-- Test scenario (parent shard and child shards are located on same machine)
|
|
-- 1. table_to_split_1 is split into table_to_split_2 and table_to_split_3.
|
|
-- 2. table_to_split_1 is located on worker1.
|
|
-- 3. table_to_split_2 and table_to_split_3 are located on worker1
|
|
SELECT nodeid AS worker_1_node FROM pg_dist_node WHERE nodeport=:worker_1_port \gset
|
|
SELECT nodeid AS worker_2_node FROM pg_dist_node WHERE nodeport=:worker_2_port \gset
|
|
\c - - - :worker_1_port
|
|
SET search_path TO split_shard_replication_setup_schema;
|
|
SET client_min_messages TO ERROR;
|
|
-- Create publication at worker1
|
|
CREATE PUBLICATION pub1 for table table_to_split_1, table_to_split_2, table_to_split_3;
|
|
-- Worker1 is target for table_to_split_2 and table_to_split_3
|
|
SELECT worker_split_shard_replication_setup(ARRAY[
|
|
ROW(1, 2, '-2147483648', '-1', :worker_1_node)::citus.split_shard_info,
|
|
ROW(1, 3, '0', '2147483647', :worker_1_node)::citus.split_shard_info
|
|
]) AS shared_memory_id \gset
|
|
SELECT slot_name AS local_slot FROM pg_create_logical_replication_slot(FORMAT('citus_split_%s_10', :worker_1_node), 'citus') \gset
|
|
-- Create subscription at worker1 with copy_data to 'false' a
|
|
BEGIN;
|
|
CREATE SUBSCRIPTION local_subscription
|
|
CONNECTION 'host=localhost port=xxxxx user=postgres dbname=regression'
|
|
PUBLICATION pub1
|
|
WITH (
|
|
create_slot=false,
|
|
enabled=true,
|
|
slot_name=:local_slot,
|
|
copy_data=false);
|
|
COMMIT;
|
|
select pg_sleep(5);
|
|
pg_sleep
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
INSERT INTO table_to_split_1 VALUES(100, 'a');
|
|
INSERT INTO table_to_split_1 VALUES(400, 'a');
|
|
INSERT INTO table_to_split_1 VALUES(500, 'a');
|
|
select pg_sleep(5);
|
|
pg_sleep
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
-- expect data to present in table_to_split_2/3 on worker1
|
|
SELECT * FROM table_to_split_1;
|
|
id | value
|
|
---------------------------------------------------------------------
|
|
100 | a
|
|
400 | a
|
|
500 | a
|
|
(3 rows)
|
|
|
|
SELECT * FROM table_to_split_2;
|
|
id | value
|
|
---------------------------------------------------------------------
|
|
400 | a
|
|
(1 row)
|
|
|
|
SELECT * FROM table_to_split_3;
|
|
id | value
|
|
---------------------------------------------------------------------
|
|
100 | a
|
|
500 | a
|
|
(2 rows)
|
|
|
|
DELETE FROM table_to_split_1;
|
|
SELECT pg_sleep(5);
|
|
pg_sleep
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
SELECT * FROM table_to_split_1;
|
|
id | value
|
|
---------------------------------------------------------------------
|
|
(0 rows)
|
|
|
|
SELECT * FROM table_to_split_2;
|
|
id | value
|
|
---------------------------------------------------------------------
|
|
(0 rows)
|
|
|
|
SELECT * FROM table_to_split_3;
|
|
id | value
|
|
---------------------------------------------------------------------
|
|
(0 rows)
|
|
|
|
-- clean up
|
|
DROP SUBSCRIPTION local_subscription;
|
|
DROP PUBLICATION pub1;
|