diff --git a/src/backend/distributed/sql/citus--9.5-1--10.0-1.sql b/src/backend/distributed/sql/citus--9.5-1--10.0-1.sql index be3ee5db9..03b0ff06c 100644 --- a/src/backend/distributed/sql/citus--9.5-1--10.0-1.sql +++ b/src/backend/distributed/sql/citus--9.5-1--10.0-1.sql @@ -63,6 +63,7 @@ RENAME TO citus_drop_all_shards; DROP FUNCTION pg_catalog.master_modify_multiple_shards(text); DROP FUNCTION pg_catalog.master_create_distributed_table(regclass, text, citus.distribution_type); DROP FUNCTION pg_catalog.master_create_worker_shards(text, integer, integer); +DROP FUNCTION pg_catalog.mark_tables_colocated(regclass, regclass[]); #include "udfs/citus_shard_sizes/10.0-1.sql" #include "udfs/citus_shards/10.0-1.sql" diff --git a/src/backend/distributed/sql/downgrades/citus--10.0-1--9.5-1.sql b/src/backend/distributed/sql/downgrades/citus--10.0-1--9.5-1.sql index 1fbbf1f43..a96906004 100644 --- a/src/backend/distributed/sql/downgrades/citus--10.0-1--9.5-1.sql +++ b/src/backend/distributed/sql/downgrades/citus--10.0-1--9.5-1.sql @@ -58,6 +58,13 @@ DROP PROCEDURE pg_catalog.alter_old_partitions_set_access_method(regclass,timest DROP FUNCTION pg_catalog.citus_set_coordinator_host(text,int,noderole,name); DROP FUNCTION pg_catalog.worker_change_sequence_dependency(regclass, regclass, regclass); +CREATE FUNCTION pg_catalog.mark_tables_colocated(source_table_name regclass, target_table_names regclass[]) + RETURNS void + LANGUAGE C STRICT + AS 'MODULE_PATHNAME', $$mark_tables_colocated$$; +COMMENT ON FUNCTION pg_catalog.mark_tables_colocated(source_table_name regclass, target_table_names regclass[]) + IS 'mark target distributed tables as colocated with the source table'; + CREATE FUNCTION pg_catalog.master_modify_multiple_shards(text) RETURNS integer LANGUAGE C STRICT diff --git a/src/test/regress/expected/multi_drop_extension.out b/src/test/regress/expected/multi_drop_extension.out index afa9a4ed2..cd3098ee8 100644 --- a/src/test/regress/expected/multi_drop_extension.out +++ b/src/test/regress/expected/multi_drop_extension.out @@ -15,7 +15,8 @@ SELECT create_distributed_table('testtableddl', 'distributecol', 'append'); -- change this test every time the previous tests change the set of tables they leave -- around. SET client_min_messages TO 'WARNING'; -DROP FUNCTION pg_catalog.master_create_worker_shards; +DROP FUNCTION pg_catalog.master_create_worker_shards(text, integer, integer); +DROP FUNCTION pg_catalog.mark_tables_colocated(regclass, regclass[]); DROP EXTENSION citus CASCADE; RESET client_min_messages; BEGIN; diff --git a/src/test/regress/expected/multi_extension.out b/src/test/regress/expected/multi_extension.out index a56701ca9..fe1b3a195 100644 --- a/src/test/regress/expected/multi_extension.out +++ b/src/test/regress/expected/multi_extension.out @@ -447,6 +447,7 @@ SELECT * FROM print_extension_changes(); --------------------------------------------------------------------- function citus_total_relation_size(regclass) | function create_citus_local_table(regclass) | + function mark_tables_colocated(regclass, regclass[]) | function master_conninfo_cache_invalidate() | function master_create_distributed_table(regclass,text,citus.distribution_type) | function master_create_worker_shards(text,integer,integer) | @@ -505,7 +506,7 @@ SELECT * FROM print_extension_changes(); | view citus_shards | view citus_tables | view time_partitions -(60 rows) +(61 rows) DROP TABLE prev_objects, extension_diff; -- show running version diff --git a/src/test/regress/expected/multi_extension_0.out b/src/test/regress/expected/multi_extension_0.out index 89d4382b3..5ec7f3990 100644 --- a/src/test/regress/expected/multi_extension_0.out +++ b/src/test/regress/expected/multi_extension_0.out @@ -447,6 +447,7 @@ SELECT * FROM print_extension_changes(); --------------------------------------------------------------------- function citus_total_relation_size(regclass) | function create_citus_local_table(regclass) | + function mark_tables_colocated(regclass, regclass[]) | function master_conninfo_cache_invalidate() | function master_create_distributed_table(regclass,text,citus.distribution_type) | function master_create_worker_shards(text,integer,integer) | @@ -501,7 +502,7 @@ SELECT * FROM print_extension_changes(); | view citus_shards | view citus_tables | view time_partitions -(56 rows) +(57 rows) DROP TABLE prev_objects, extension_diff; -- show running version diff --git a/src/test/regress/expected/multi_metadata_sync.out b/src/test/regress/expected/multi_metadata_sync.out index f3aeede8d..c457b5a6b 100644 --- a/src/test/regress/expected/multi_metadata_sync.out +++ b/src/test/regress/expected/multi_metadata_sync.out @@ -810,6 +810,11 @@ SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='mx_test_schema_1 -- Check that mark_tables_colocated call propagates the changes to the workers \c - - - :master_port +-- this function is dropped in Citus10, added here for tests +CREATE OR REPLACE FUNCTION pg_catalog.mark_tables_colocated(source_table_name regclass, target_table_names regclass[]) + RETURNS void + LANGUAGE C STRICT + AS 'citus', $$mark_tables_colocated$$; SELECT nextval('pg_catalog.pg_dist_colocationid_seq') AS last_colocation_id \gset ALTER SEQUENCE pg_catalog.pg_dist_colocationid_seq RESTART 10000; SET citus.shard_count TO 7; diff --git a/src/test/regress/expected/multi_reference_table.out b/src/test/regress/expected/multi_reference_table.out index 70da4735e..83e7e8c84 100644 --- a/src/test/regress/expected/multi_reference_table.out +++ b/src/test/regress/expected/multi_reference_table.out @@ -1196,6 +1196,11 @@ DEBUG: cannot perform distributed INSERT INTO ... SELECT because the partition DETAIL: The target table's partition column should correspond to a partition column in the subquery. DEBUG: performing repartitioned INSERT ... SELECT RESET client_min_messages; +-- this function is dropped in Citus10, added here for tests +CREATE OR REPLACE FUNCTION pg_catalog.mark_tables_colocated(source_table_name regclass, target_table_names regclass[]) + RETURNS void + LANGUAGE C STRICT + AS 'citus', $$mark_tables_colocated$$; -- some tests for mark_tables_colocated -- should error out SELECT mark_tables_colocated('colocated_table_test_2', ARRAY['reference_table_test']); diff --git a/src/test/regress/expected/multi_unsupported_worker_operations.out b/src/test/regress/expected/multi_unsupported_worker_operations.out index 5f92cfd8f..7ec8728bd 100644 --- a/src/test/regress/expected/multi_unsupported_worker_operations.out +++ b/src/test/regress/expected/multi_unsupported_worker_operations.out @@ -221,6 +221,11 @@ SELECT master_remove_node('localhost', 5432); \c - - - :worker_1_port -- mark_tables_colocated +-- this function is dropped in Citus10, added here for tests +CREATE OR REPLACE FUNCTION pg_catalog.mark_tables_colocated(source_table_name regclass, target_table_names regclass[]) + RETURNS void + LANGUAGE C STRICT + AS 'citus', $$mark_tables_colocated$$; UPDATE pg_dist_partition SET colocationid = 0 WHERE logicalrelid='mx_table_2'::regclass; SELECT mark_tables_colocated('mx_table', ARRAY['mx_table_2']); ERROR: operation is not allowed on this node diff --git a/src/test/regress/expected/upgrade_list_citus_objects.out b/src/test/regress/expected/upgrade_list_citus_objects.out index 00cb067f5..db85ce4bb 100644 --- a/src/test/regress/expected/upgrade_list_citus_objects.out +++ b/src/test/regress/expected/upgrade_list_citus_objects.out @@ -126,7 +126,6 @@ ORDER BY 1; function lock_relation_if_exists(text,text) function lock_shard_metadata(integer,bigint[]) function lock_shard_resources(integer,bigint[]) - function mark_tables_colocated(regclass,regclass[]) function master_activate_node(text,integer) function master_add_inactive_node(text,integer,integer,noderole,name) function master_add_node(text,integer,integer,noderole,name) @@ -237,5 +236,5 @@ ORDER BY 1; view citus_worker_stat_activity view pg_dist_shard_placement view time_partitions -(221 rows) +(220 rows) diff --git a/src/test/regress/expected/upgrade_list_citus_objects_0.out b/src/test/regress/expected/upgrade_list_citus_objects_0.out index d9980d8bf..a7fcf6185 100644 --- a/src/test/regress/expected/upgrade_list_citus_objects_0.out +++ b/src/test/regress/expected/upgrade_list_citus_objects_0.out @@ -122,7 +122,6 @@ ORDER BY 1; function lock_relation_if_exists(text,text) function lock_shard_metadata(integer,bigint[]) function lock_shard_resources(integer,bigint[]) - function mark_tables_colocated(regclass,regclass[]) function master_activate_node(text,integer) function master_add_inactive_node(text,integer,integer,noderole,name) function master_add_node(text,integer,integer,noderole,name) @@ -233,5 +232,5 @@ ORDER BY 1; view citus_worker_stat_activity view pg_dist_shard_placement view time_partitions -(217 rows) +(216 rows) diff --git a/src/test/regress/sql/multi_drop_extension.sql b/src/test/regress/sql/multi_drop_extension.sql index 8112ffef1..ec1bee234 100644 --- a/src/test/regress/sql/multi_drop_extension.sql +++ b/src/test/regress/sql/multi_drop_extension.sql @@ -15,7 +15,8 @@ SELECT create_distributed_table('testtableddl', 'distributecol', 'append'); -- change this test every time the previous tests change the set of tables they leave -- around. SET client_min_messages TO 'WARNING'; -DROP FUNCTION pg_catalog.master_create_worker_shards; +DROP FUNCTION pg_catalog.master_create_worker_shards(text, integer, integer); +DROP FUNCTION pg_catalog.mark_tables_colocated(regclass, regclass[]); DROP EXTENSION citus CASCADE; RESET client_min_messages; diff --git a/src/test/regress/sql/multi_metadata_sync.sql b/src/test/regress/sql/multi_metadata_sync.sql index 425685fda..a0ff53a7c 100644 --- a/src/test/regress/sql/multi_metadata_sync.sql +++ b/src/test/regress/sql/multi_metadata_sync.sql @@ -356,6 +356,11 @@ SELECT "Constraint", "Definition" FROM table_fkeys WHERE relid='mx_test_schema_1 -- Check that mark_tables_colocated call propagates the changes to the workers \c - - - :master_port +-- this function is dropped in Citus10, added here for tests +CREATE OR REPLACE FUNCTION pg_catalog.mark_tables_colocated(source_table_name regclass, target_table_names regclass[]) + RETURNS void + LANGUAGE C STRICT + AS 'citus', $$mark_tables_colocated$$; SELECT nextval('pg_catalog.pg_dist_colocationid_seq') AS last_colocation_id \gset ALTER SEQUENCE pg_catalog.pg_dist_colocationid_seq RESTART 10000; SET citus.shard_count TO 7; diff --git a/src/test/regress/sql/multi_reference_table.sql b/src/test/regress/sql/multi_reference_table.sql index aec36920b..34b9900db 100644 --- a/src/test/regress/sql/multi_reference_table.sql +++ b/src/test/regress/sql/multi_reference_table.sql @@ -764,6 +764,12 @@ WHERE RESET client_min_messages; +-- this function is dropped in Citus10, added here for tests +CREATE OR REPLACE FUNCTION pg_catalog.mark_tables_colocated(source_table_name regclass, target_table_names regclass[]) + RETURNS void + LANGUAGE C STRICT + AS 'citus', $$mark_tables_colocated$$; + -- some tests for mark_tables_colocated -- should error out SELECT mark_tables_colocated('colocated_table_test_2', ARRAY['reference_table_test']); diff --git a/src/test/regress/sql/multi_unsupported_worker_operations.sql b/src/test/regress/sql/multi_unsupported_worker_operations.sql index 22e8cc5dd..69677d3c1 100644 --- a/src/test/regress/sql/multi_unsupported_worker_operations.sql +++ b/src/test/regress/sql/multi_unsupported_worker_operations.sql @@ -143,6 +143,11 @@ SELECT master_remove_node('localhost', 5432); \c - - - :worker_1_port -- mark_tables_colocated +-- this function is dropped in Citus10, added here for tests +CREATE OR REPLACE FUNCTION pg_catalog.mark_tables_colocated(source_table_name regclass, target_table_names regclass[]) + RETURNS void + LANGUAGE C STRICT + AS 'citus', $$mark_tables_colocated$$; UPDATE pg_dist_partition SET colocationid = 0 WHERE logicalrelid='mx_table_2'::regclass; SELECT mark_tables_colocated('mx_table', ARRAY['mx_table_2']);