mirror of https://github.com/citusdata/citus.git
Fix multi-1 tests
parent
ee69a5a0b5
commit
7c1a41d45c
|
@ -1136,8 +1136,7 @@ ActivateNode(char *nodeName, int nodePort)
|
||||||
*/
|
*/
|
||||||
if (ReplicateReferenceTablesOnActivate)
|
if (ReplicateReferenceTablesOnActivate)
|
||||||
{
|
{
|
||||||
ReplicateAllReferenceTablesToNode(workerNode->workerName,
|
ReplicateAllReferenceTablesToNode(workerNode);
|
||||||
workerNode->workerPort);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -553,7 +553,7 @@ ReferenceTableReplicationFactor(void)
|
||||||
* reference table to prevent unnecessary data transfer.
|
* reference table to prevent unnecessary data transfer.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
ReplicateAllReferenceTablesToNode(char *nodeName, int nodePort)
|
ReplicateAllReferenceTablesToNode(WorkerNode *workerNode)
|
||||||
{
|
{
|
||||||
List *referenceTableList = CitusTableTypeIdList(REFERENCE_TABLE);
|
List *referenceTableList = CitusTableTypeIdList(REFERENCE_TABLE);
|
||||||
|
|
||||||
|
@ -589,7 +589,9 @@ ReplicateAllReferenceTablesToNode(char *nodeName, int nodePort)
|
||||||
|
|
||||||
LockShardDistributionMetadata(shardId, ExclusiveLock);
|
LockShardDistributionMetadata(shardId, ExclusiveLock);
|
||||||
|
|
||||||
ReplicateReferenceTableShardToNode(shardInterval, nodeName, nodePort);
|
ReplicateReferenceTableShardToNode(shardInterval,
|
||||||
|
workerNode->workerName,
|
||||||
|
workerNode->workerPort);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* create foreign constraints between reference tables */
|
/* create foreign constraints between reference tables */
|
||||||
|
@ -599,7 +601,8 @@ ReplicateAllReferenceTablesToNode(char *nodeName, int nodePort)
|
||||||
|
|
||||||
/* send commands to new workers, the current user should be a superuser */
|
/* send commands to new workers, the current user should be a superuser */
|
||||||
Assert(superuser());
|
Assert(superuser());
|
||||||
SendMetadataCommandListToWorkerInCoordinatedTransaction(nodeName, nodePort,
|
SendMetadataCommandListToWorkerInCoordinatedTransaction(workerNode->workerName,
|
||||||
|
workerNode->workerPort,
|
||||||
CurrentUserName(),
|
CurrentUserName(),
|
||||||
commandList);
|
commandList);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,6 @@ extern void DeleteAllReplicatedTablePlacementsFromNodeGroup(int32 groupId,
|
||||||
bool localOnly);
|
bool localOnly);
|
||||||
extern int CompareOids(const void *leftElement, const void *rightElement);
|
extern int CompareOids(const void *leftElement, const void *rightElement);
|
||||||
extern int ReferenceTableReplicationFactor(void);
|
extern int ReferenceTableReplicationFactor(void);
|
||||||
extern void ReplicateAllReferenceTablesToNode(char *nodeName, int nodePort);
|
extern void ReplicateAllReferenceTablesToNode(WorkerNode *workerNode);
|
||||||
|
|
||||||
#endif /* REFERENCE_TABLE_UTILS_H_ */
|
#endif /* REFERENCE_TABLE_UTILS_H_ */
|
||||||
|
|
|
@ -110,6 +110,8 @@ SELECT count(*) FROM history;
|
||||||
-- test we can replicate MX tables
|
-- test we can replicate MX tables
|
||||||
SET citus.shard_replication_factor TO 1;
|
SET citus.shard_replication_factor TO 1;
|
||||||
-- metadata sync will succeed even if we have rep > 1 tables
|
-- metadata sync will succeed even if we have rep > 1 tables
|
||||||
|
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'public.articles'::regclass::oid, 0);
|
||||||
|
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'public.articles_single_shard'::regclass::oid, 0);
|
||||||
SELECT start_metadata_sync_to_node('localhost', :worker_1_port);
|
SELECT start_metadata_sync_to_node('localhost', :worker_1_port);
|
||||||
start_metadata_sync_to_node
|
start_metadata_sync_to_node
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
|
|
|
@ -464,7 +464,11 @@ SELECT create_reference_table('replicate_reference_table_insert');
|
||||||
BEGIN;
|
BEGIN;
|
||||||
INSERT INTO replicate_reference_table_insert VALUES(1);
|
INSERT INTO replicate_reference_table_insert VALUES(1);
|
||||||
SELECT 1 FROM master_add_node('localhost', :worker_2_port);
|
SELECT 1 FROM master_add_node('localhost', :worker_2_port);
|
||||||
ERROR: cannot open new connections after the first modification command within a transaction
|
?column?
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
DROP TABLE replicate_reference_table_insert;
|
DROP TABLE replicate_reference_table_insert;
|
||||||
-- test COPY then adding a new node in a transaction
|
-- test COPY then adding a new node in a transaction
|
||||||
|
@ -479,7 +483,11 @@ SET citus.enable_local_execution = 'off';
|
||||||
BEGIN;
|
BEGIN;
|
||||||
COPY replicate_reference_table_copy FROM STDIN;
|
COPY replicate_reference_table_copy FROM STDIN;
|
||||||
SELECT 1 FROM master_add_node('localhost', :worker_2_port);
|
SELECT 1 FROM master_add_node('localhost', :worker_2_port);
|
||||||
ERROR: cannot open new connections after the first modification command within a transaction
|
?column?
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
RESET citus.enable_local_execution;
|
RESET citus.enable_local_execution;
|
||||||
DROP TABLE replicate_reference_table_copy;
|
DROP TABLE replicate_reference_table_copy;
|
||||||
|
@ -494,7 +502,11 @@ SELECT create_reference_table('replicate_reference_table_ddl');
|
||||||
BEGIN;
|
BEGIN;
|
||||||
ALTER TABLE replicate_reference_table_ddl ADD column2 int;
|
ALTER TABLE replicate_reference_table_ddl ADD column2 int;
|
||||||
SELECT 1 FROM master_add_node('localhost', :worker_2_port);
|
SELECT 1 FROM master_add_node('localhost', :worker_2_port);
|
||||||
ERROR: cannot open new connections after the first modification command within a transaction
|
?column?
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
1
|
||||||
|
(1 row)
|
||||||
|
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
DROP TABLE replicate_reference_table_ddl;
|
DROP TABLE replicate_reference_table_ddl;
|
||||||
-- test DROP table after adding new node in a transaction
|
-- test DROP table after adding new node in a transaction
|
||||||
|
|
|
@ -506,8 +506,6 @@ INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::re
|
||||||
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'packed_numbers_hash'::regclass::oid, 0);
|
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'packed_numbers_hash'::regclass::oid, 0);
|
||||||
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'super_packed_numbers_hash'::regclass::oid, 0);
|
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'super_packed_numbers_hash'::regclass::oid, 0);
|
||||||
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'table_to_distribute'::regclass::oid, 0);
|
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'table_to_distribute'::regclass::oid, 0);
|
||||||
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'articles'::regclass::oid, 0);
|
|
||||||
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'articles_single_shard'::regclass::oid, 0);
|
|
||||||
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'second_dustbunnies'::regclass::oid, 0);
|
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'second_dustbunnies'::regclass::oid, 0);
|
||||||
|
|
||||||
SELECT 1 FROM master_activate_node('localhost', :worker_1_port);
|
SELECT 1 FROM master_activate_node('localhost', :worker_1_port);
|
||||||
|
|
|
@ -633,8 +633,6 @@ INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::re
|
||||||
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'packed_numbers_hash'::regclass::oid, 0);
|
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'packed_numbers_hash'::regclass::oid, 0);
|
||||||
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'super_packed_numbers_hash'::regclass::oid, 0);
|
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'super_packed_numbers_hash'::regclass::oid, 0);
|
||||||
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'table_to_distribute'::regclass::oid, 0);
|
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'table_to_distribute'::regclass::oid, 0);
|
||||||
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'articles'::regclass::oid, 0);
|
|
||||||
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'articles_single_shard'::regclass::oid, 0);
|
|
||||||
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'second_dustbunnies'::regclass::oid, 0);
|
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'second_dustbunnies'::regclass::oid, 0);
|
||||||
SELECT 1 FROM master_activate_node('localhost', :worker_1_port);
|
SELECT 1 FROM master_activate_node('localhost', :worker_1_port);
|
||||||
?column?
|
?column?
|
||||||
|
|
|
@ -93,6 +93,8 @@ SELECT count(*) FROM history;
|
||||||
SET citus.shard_replication_factor TO 1;
|
SET citus.shard_replication_factor TO 1;
|
||||||
|
|
||||||
-- metadata sync will succeed even if we have rep > 1 tables
|
-- metadata sync will succeed even if we have rep > 1 tables
|
||||||
|
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'public.articles'::regclass::oid, 0);
|
||||||
|
INSERT INTO citus.pg_dist_object(classid, objid, objsubid) values('pg_class'::regclass::oid, 'public.articles_single_shard'::regclass::oid, 0);
|
||||||
SELECT start_metadata_sync_to_node('localhost', :worker_1_port);
|
SELECT start_metadata_sync_to_node('localhost', :worker_1_port);
|
||||||
|
|
||||||
CREATE TABLE mx_table(a int);
|
CREATE TABLE mx_table(a int);
|
||||||
|
|
Loading…
Reference in New Issue