mirror of https://github.com/citusdata/citus.git
85 lines
3.3 KiB
SQL
85 lines
3.3 KiB
SQL
#include "udfs/read_intermediate_results/9.2-1.sql"
|
|
#include "udfs/fetch_intermediate_results/9.2-1.sql"
|
|
|
|
ALTER TABLE pg_catalog.pg_dist_colocation ADD distributioncolumncollation oid;
|
|
UPDATE pg_catalog.pg_dist_colocation dc SET distributioncolumncollation = t.typcollation
|
|
FROM pg_catalog.pg_type t WHERE t.oid = dc.distributioncolumntype;
|
|
UPDATE pg_catalog.pg_dist_colocation dc SET distributioncolumncollation = 0 WHERE distributioncolumncollation IS NULL;
|
|
ALTER TABLE pg_catalog.pg_dist_colocation ALTER COLUMN distributioncolumncollation SET NOT NULL;
|
|
|
|
DROP INDEX pg_dist_colocation_configuration_index;
|
|
-- distributioncolumntype should be listed first so that this index can be used for looking up reference tables' colocation id
|
|
CREATE INDEX pg_dist_colocation_configuration_index
|
|
ON pg_dist_colocation USING btree(distributioncolumntype, shardcount, replicationfactor, distributioncolumncollation);
|
|
|
|
CREATE TABLE citus.pg_dist_rebalance_strategy(
|
|
name name NOT NULL,
|
|
default_strategy boolean NOT NULL DEFAULT false,
|
|
shard_cost_function regproc NOT NULL,
|
|
node_capacity_function regproc NOT NULL,
|
|
shard_allowed_on_node_function regproc NOT NULL,
|
|
default_threshold float4 NOT NULL,
|
|
minimum_threshold float4 NOT NULL DEFAULT 0,
|
|
UNIQUE(name)
|
|
);
|
|
ALTER TABLE citus.pg_dist_rebalance_strategy SET SCHEMA pg_catalog;
|
|
GRANT SELECT ON pg_catalog.pg_dist_rebalance_strategy TO public;
|
|
|
|
#include "udfs/citus_validate_rebalance_strategy_functions/9.2-1.sql"
|
|
#include "udfs/pg_dist_rebalance_strategy_trigger_func/9.2-1.sql"
|
|
CREATE TRIGGER pg_dist_rebalance_strategy_validation_trigger
|
|
BEFORE INSERT OR UPDATE ON pg_dist_rebalance_strategy
|
|
FOR EACH ROW EXECUTE PROCEDURE citus_internal.pg_dist_rebalance_strategy_trigger_func();
|
|
|
|
#include "udfs/citus_add_rebalance_strategy/9.2-1.sql"
|
|
#include "udfs/citus_set_default_rebalance_strategy/9.2-1.sql"
|
|
|
|
#include "udfs/citus_shard_cost_1/9.2-1.sql"
|
|
#include "udfs/citus_shard_cost_by_disk_size/9.2-1.sql"
|
|
#include "udfs/citus_node_capacity_1/9.2-1.sql"
|
|
#include "udfs/citus_shard_allowed_on_node_true/9.2-1.sql"
|
|
|
|
INSERT INTO
|
|
pg_catalog.pg_dist_rebalance_strategy(
|
|
name,
|
|
default_strategy,
|
|
shard_cost_function,
|
|
node_capacity_function,
|
|
shard_allowed_on_node_function,
|
|
default_threshold,
|
|
minimum_threshold
|
|
) VALUES (
|
|
'by_shard_count',
|
|
true,
|
|
'citus_shard_cost_1',
|
|
'citus_node_capacity_1',
|
|
'citus_shard_allowed_on_node_true',
|
|
0,
|
|
0
|
|
), (
|
|
'by_disk_size',
|
|
false,
|
|
'citus_shard_cost_by_disk_size',
|
|
'citus_node_capacity_1',
|
|
'citus_shard_allowed_on_node_true',
|
|
0.1,
|
|
0.01
|
|
);
|
|
|
|
|
|
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();
|
|
|
|
|
|
#include "udfs/master_drain_node/9.2-1.sql"
|
|
#include "udfs/rebalance_table_shards/9.2-1.sql"
|
|
#include "udfs/get_rebalance_table_shards_plan/9.2-1.sql"
|
|
|
|
#include "udfs/citus_prepare_pg_upgrade/9.2-1.sql"
|
|
#include "udfs/citus_finish_pg_upgrade/9.2-1.sql"
|