diff --git a/src/backend/distributed/operations/shard_rebalancer.c b/src/backend/distributed/operations/shard_rebalancer.c index d07eee868..91c00d7c0 100644 --- a/src/backend/distributed/operations/shard_rebalancer.c +++ b/src/backend/distributed/operations/shard_rebalancer.c @@ -2786,13 +2786,12 @@ UpdateColocatedShardPlacementProgress(uint64 shardId, char *sourceName, int sour /* - * citus_rebalance_strategy_enterprise_check is trigger function, intended for - * use in prohibiting writes to pg_dist_rebalance_strategy in Citus Community. + * pg_dist_rebalance_strategy_enterprise_check is a now removed function, but + * to avoid issues during upgrades a C stub is kept. */ Datum pg_dist_rebalance_strategy_enterprise_check(PG_FUNCTION_ARGS) { - /* This is Enterprise, so this check is a no-op */ PG_RETURN_VOID(); } diff --git a/src/backend/distributed/sql/citus--10.0-3--10.1-1.sql b/src/backend/distributed/sql/citus--10.0-3--10.1-1.sql index 0720750e2..387db171e 100644 --- a/src/backend/distributed/sql/citus--10.0-3--10.1-1.sql +++ b/src/backend/distributed/sql/citus--10.0-3--10.1-1.sql @@ -44,3 +44,6 @@ WHERE repmodel = 'c' AND partmethod = 'h' AND logicalrelid NOT IN (SELECT * FROM replicated_relations); #include "udfs/citus_shards/10.1-1.sql" + +DROP TRIGGER pg_dist_rebalance_strategy_enterprise_check_trigger ON pg_catalog.pg_dist_rebalance_strategy; +DROP FUNCTION citus_internal.pg_dist_rebalance_strategy_enterprise_check(); diff --git a/src/backend/distributed/sql/downgrades/citus--10.1-1--10.0-3.sql b/src/backend/distributed/sql/downgrades/citus--10.1-1--10.0-3.sql index 668c9eb7b..af5c3b55b 100644 --- a/src/backend/distributed/sql/downgrades/citus--10.1-1--10.0-3.sql +++ b/src/backend/distributed/sql/downgrades/citus--10.1-1--10.0-3.sql @@ -76,4 +76,11 @@ ORDER BY ; #include "../udfs/citus_finish_pg_upgrade/10.0-1.sql" +CREATE FUNCTION citus_internal.pg_dist_rebalance_strategy_enterprise_check() + RETURNS TRIGGER + LANGUAGE C + AS 'MODULE_PATHNAME'; +CREATE TRIGGER pg_dist_rebalance_strategy_enterprise_check_trigger + BEFORE INSERT OR UPDATE OR DELETE OR TRUNCATE ON pg_dist_rebalance_strategy + FOR EACH STATEMENT EXECUTE FUNCTION citus_internal.pg_dist_rebalance_strategy_enterprise_check(); diff --git a/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/10.1-1.sql b/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/10.1-1.sql index 557ab832c..fdc05f6df 100644 --- a/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/10.1-1.sql +++ b/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/10.1-1.sql @@ -23,7 +23,6 @@ BEGIN INSERT INTO pg_catalog.pg_dist_authinfo SELECT * FROM public.pg_dist_authinfo; INSERT INTO pg_catalog.pg_dist_poolinfo SELECT * FROM public.pg_dist_poolinfo; - ALTER TABLE pg_catalog.pg_dist_rebalance_strategy DISABLE TRIGGER pg_dist_rebalance_strategy_enterprise_check_trigger; INSERT INTO pg_catalog.pg_dist_rebalance_strategy SELECT name, default_strategy, @@ -34,7 +33,6 @@ BEGIN minimum_threshold, improvement_threshold FROM public.pg_dist_rebalance_strategy; - ALTER TABLE pg_catalog.pg_dist_rebalance_strategy ENABLE TRIGGER pg_dist_rebalance_strategy_enterprise_check_trigger; -- -- drop backup tables diff --git a/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/latest.sql b/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/latest.sql index 557ab832c..fdc05f6df 100644 --- a/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/latest.sql +++ b/src/backend/distributed/sql/udfs/citus_finish_pg_upgrade/latest.sql @@ -23,7 +23,6 @@ BEGIN INSERT INTO pg_catalog.pg_dist_authinfo SELECT * FROM public.pg_dist_authinfo; INSERT INTO pg_catalog.pg_dist_poolinfo SELECT * FROM public.pg_dist_poolinfo; - ALTER TABLE pg_catalog.pg_dist_rebalance_strategy DISABLE TRIGGER pg_dist_rebalance_strategy_enterprise_check_trigger; INSERT INTO pg_catalog.pg_dist_rebalance_strategy SELECT name, default_strategy, @@ -34,7 +33,6 @@ BEGIN minimum_threshold, improvement_threshold FROM public.pg_dist_rebalance_strategy; - ALTER TABLE pg_catalog.pg_dist_rebalance_strategy ENABLE TRIGGER pg_dist_rebalance_strategy_enterprise_check_trigger; -- -- drop backup tables diff --git a/src/test/regress/expected/multi_extension.out b/src/test/regress/expected/multi_extension.out index 06f54321d..63179c7c5 100644 --- a/src/test/regress/expected/multi_extension.out +++ b/src/test/regress/expected/multi_extension.out @@ -568,6 +568,7 @@ SELECT * FROM print_extension_changes(); --------------------------------------------------------------------- function citus_add_rebalance_strategy(name,regproc,regproc,regproc,real,real) void | function citus_internal.columnar_ensure_objects_exist() void | + function citus_internal.pg_dist_rebalance_strategy_enterprise_check() trigger | function create_distributed_table(regclass,text,citus.distribution_type,text) void | function get_rebalance_progress() TABLE(sessionid integer, table_name regclass, shardid bigint, shard_size bigint, sourcename text, sourceport integer, targetname text, targetport integer, progress bigint) | function get_rebalance_table_shards_plan(regclass,real,integer,bigint[],boolean,name) TABLE(table_name regclass, shardid bigint, shard_size bigint, sourcename text, sourceport integer, targetname text, targetport integer) | @@ -579,7 +580,7 @@ SELECT * FROM print_extension_changes(); | function worker_partitioned_relation_size(regclass) bigint | function worker_partitioned_relation_total_size(regclass) bigint | function worker_partitioned_table_size(regclass) bigint -(13 rows) +(14 rows) DROP TABLE prev_objects, extension_diff; -- show running version diff --git a/src/test/regress/expected/upgrade_list_citus_objects.out b/src/test/regress/expected/upgrade_list_citus_objects.out index cd96f8caa..064e40e89 100644 --- a/src/test/regress/expected/upgrade_list_citus_objects.out +++ b/src/test/regress/expected/upgrade_list_citus_objects.out @@ -58,7 +58,6 @@ ORDER BY 1; function citus_get_active_worker_nodes() function citus_internal.find_groupid_for_node(text,integer) function citus_internal.pg_dist_node_trigger_func() - function citus_internal.pg_dist_rebalance_strategy_enterprise_check() function citus_internal.pg_dist_rebalance_strategy_trigger_func() function citus_internal.pg_dist_shard_placement_trigger_func() function citus_internal.refresh_isolation_tester_prepared_statement() @@ -246,5 +245,5 @@ ORDER BY 1; view citus_worker_stat_activity view pg_dist_shard_placement view time_partitions -(230 rows) +(229 rows)