citus/src/test/regress/sql/upgrade_rebalance_strategy_...

33 lines
1.2 KiB
PL/PgSQL

CREATE SCHEMA upgrade_rebalance_strategy;
SET search_path TO upgrade_rebalance_strategy, public;
-- The following function signatures should always keep working
CREATE FUNCTION shard_cost_2(bigint)
RETURNS float4 AS $$ SELECT 2.0::float4 $$ LANGUAGE sql;
CREATE FUNCTION capacity_high_worker_1(nodeidarg int)
RETURNS real AS $$
SELECT
(CASE WHEN nodeport = 57637 THEN 1000 ELSE 1 END)::real
FROM pg_dist_node where nodeid = nodeidarg
$$ LANGUAGE sql;
CREATE FUNCTION only_worker_2(shardid bigint, nodeidarg int)
RETURNS boolean AS $$
SELECT
(CASE WHEN nodeport = 57638 THEN TRUE ELSE FALSE END)
FROM pg_dist_node where nodeid = nodeidarg
$$ LANGUAGE sql;
ALTER TABLE pg_catalog.pg_dist_rebalance_strategy DISABLE TRIGGER pg_dist_rebalance_strategy_enterprise_check_trigger;
SELECT citus_add_rebalance_strategy(
'custom_strategy',
'shard_cost_2',
'capacity_high_worker_1',
'only_worker_2',
0.5,
0.2
);
SELECT citus_set_default_rebalance_strategy('custom_strategy');
ALTER TABLE pg_catalog.pg_dist_rebalance_strategy ENABLE TRIGGER pg_dist_rebalance_strategy_enterprise_check_trigger;