mirror of https://github.com/citusdata/citus.git
Test master_copy_shard_placement errors on foreign constraints
parent
f9de734329
commit
2639a9a19d
|
@ -4,7 +4,7 @@ SET search_path TO mcsp;
|
|||
SET citus.next_shard_id TO 8139000;
|
||||
SET citus.shard_replication_factor TO 1;
|
||||
SET citus.replication_model TO 'statement';
|
||||
CREATE TABLE ref_table(a int);
|
||||
CREATE TABLE ref_table(a int, b text unique);
|
||||
SELECT create_reference_table('ref_table');
|
||||
create_reference_table
|
||||
---------------------------------------------------------------------
|
||||
|
@ -62,6 +62,18 @@ SELECT master_copy_shard_placement(
|
|||
'localhost', :worker_2_port,
|
||||
do_repair := false);
|
||||
ERROR: shard xxxxx already exists in the target node
|
||||
-- verify we error out if table has foreign key constraints
|
||||
INSERT INTO ref_table SELECT 1, value FROM data;
|
||||
ALTER TABLE data ADD CONSTRAINT distfk FOREIGN KEY (value) REFERENCES ref_table (b) MATCH FULL;
|
||||
SELECT master_copy_shard_placement(
|
||||
get_shard_id_for_distribution_column('data', 'key-1'),
|
||||
'localhost', :worker_2_port,
|
||||
'localhost', :worker_1_port,
|
||||
do_repair := false);
|
||||
ERROR: cannot create foreign key constraint
|
||||
DETAIL: This shard has foreign constraints on it. Citus currently supports foreign key constraints only for "citus.shard_replication_factor = 1".
|
||||
HINT: Please change "citus.shard_replication_factor to 1". To learn more about using foreign keys with other replication factors, please contact us at https://citusdata.com/about/contact_us.
|
||||
ALTER TABLE data DROP CONSTRAINT distfk;
|
||||
-- replicate shard that contains key-1
|
||||
SELECT master_copy_shard_placement(
|
||||
get_shard_id_for_distribution_column('data', 'key-1'),
|
||||
|
|
|
@ -5,7 +5,7 @@ SET citus.next_shard_id TO 8139000;
|
|||
SET citus.shard_replication_factor TO 1;
|
||||
SET citus.replication_model TO 'statement';
|
||||
|
||||
CREATE TABLE ref_table(a int);
|
||||
CREATE TABLE ref_table(a int, b text unique);
|
||||
SELECT create_reference_table('ref_table');
|
||||
|
||||
CREATE TABLE data (
|
||||
|
@ -52,6 +52,18 @@ SELECT master_copy_shard_placement(
|
|||
'localhost', :worker_2_port,
|
||||
do_repair := false);
|
||||
|
||||
-- verify we error out if table has foreign key constraints
|
||||
INSERT INTO ref_table SELECT 1, value FROM data;
|
||||
|
||||
ALTER TABLE data ADD CONSTRAINT distfk FOREIGN KEY (value) REFERENCES ref_table (b) MATCH FULL;
|
||||
SELECT master_copy_shard_placement(
|
||||
get_shard_id_for_distribution_column('data', 'key-1'),
|
||||
'localhost', :worker_2_port,
|
||||
'localhost', :worker_1_port,
|
||||
do_repair := false);
|
||||
|
||||
ALTER TABLE data DROP CONSTRAINT distfk;
|
||||
|
||||
-- replicate shard that contains key-1
|
||||
SELECT master_copy_shard_placement(
|
||||
get_shard_id_for_distribution_column('data', 'key-1'),
|
||||
|
|
Loading…
Reference in New Issue