citus/src/backend/distributed/citus--5.2-1--5.2-2.sql

63 lines
1.8 KiB
SQL

SET search_path = 'pg_catalog';
/* add pg_dist_node */
CREATE TABLE citus.pg_dist_node(
nodeid int NOT NULL PRIMARY KEY,
groupid int NOT NULL,
nodename text NOT NULL,
nodeport int NOT NULL,
UNIQUE (nodename, nodeport)
);
CREATE SEQUENCE citus.pg_dist_groupid_seq
MINVALUE 1
MAXVALUE 4294967296;
CREATE SEQUENCE citus.pg_dist_node_nodeid_seq
MINVALUE 1
MAXVALUE 4294967296;
ALTER TABLE citus.pg_dist_node SET SCHEMA pg_catalog;
ALTER SEQUENCE citus.pg_dist_groupid_seq SET SCHEMA pg_catalog;
ALTER SEQUENCE citus.pg_dist_node_nodeid_seq SET SCHEMA pg_catalog;
CREATE FUNCTION master_dist_node_cache_invalidate()
RETURNS trigger
LANGUAGE C
AS 'MODULE_PATHNAME', $$master_dist_node_cache_invalidate$$;
COMMENT ON FUNCTION master_dist_node_cache_invalidate()
IS 'invalidate internal cache of nodes when pg_dist_nodes changes';
CREATE TRIGGER dist_node_cache_invalidate
AFTER INSERT OR UPDATE OR DELETE
ON pg_catalog.pg_dist_node
FOR EACH ROW EXECUTE PROCEDURE master_dist_node_cache_invalidate();
CREATE FUNCTION cluster_add_node(nodename text,
nodeport integer,
groupid integer DEFAULT 0)
RETURNS record
LANGUAGE C STRICT
AS 'MODULE_PATHNAME', $$cluster_add_node$$;
COMMENT ON FUNCTION cluster_add_node(nodename text,
nodeport integer,
groupid integer)
IS 'add node to the cluster';
CREATE FUNCTION cluster_remove_node(nodename text, nodeport integer)
RETURNS void
LANGUAGE C STRICT
AS 'MODULE_PATHNAME', $$cluster_remove_node$$;
COMMENT ON FUNCTION cluster_remove_node(nodename text, nodeport integer)
IS 'remove node from the cluster';
/* this only needs to run once, now. */
CREATE FUNCTION cluster_initialize_node_metadata()
RETURNS BOOL
LANGUAGE C STRICT
AS 'MODULE_PATHNAME', $$cluster_initialize_node_metadata$$;
SELECT cluster_initialize_node_metadata();
RESET search_path;