-- complain if script is sourced in psql, rather than via CREATE EXTENSION \echo Use "CREATE EXTENSION repmgr" to load this file. \quit CREATE TABLE nodes ( node_id INTEGER PRIMARY KEY, upstream_node_id INTEGER NULL REFERENCES nodes (node_id) DEFERRABLE, active BOOLEAN NOT NULL DEFAULT TRUE, node_name TEXT NOT NULL, type TEXT NOT NULL CHECK (type IN('primary','standby','witness','bdr')), priority INT NOT NULL DEFAULT 100, conninfo TEXT NOT NULL, repluser TEXT NOT NULL, slot_name TEXT NULL ); CREATE TABLE events ( node_id INTEGER NOT NULL, event TEXT NOT NULL, successful BOOLEAN NOT NULL DEFAULT TRUE, event_timestamp TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP, details TEXT NULL ); CREATE VIEW show_nodes AS SELECT n.node_id, n.node_name, un.node_name AS upstream_node_name, n.type, n.priority, n.conninfo FROM nodes n LEFT JOIN nodes un ON un.node_id = n.upstream_node_id; /* repmgrd functions */ CREATE FUNCTION request_vote(INT,INT) RETURNS pg_lsn AS '$libdir/repmgr', 'request_vote' LANGUAGE C STRICT; CREATE FUNCTION get_voting_status() RETURNS INT AS '$libdir/repmgr', 'get_voting_status' LANGUAGE C STRICT; CREATE FUNCTION set_voting_status_initiated() RETURNS INT AS '$libdir/repmgr', 'set_voting_status_initiated' LANGUAGE C STRICT; CREATE FUNCTION other_node_is_candidate(INT, INT) RETURNS BOOL AS '$libdir/repmgr', 'other_node_is_candidate' LANGUAGE C STRICT; CREATE FUNCTION notify_follow_primary(INT) RETURNS VOID AS '$libdir/repmgr', 'notify_follow_primary' LANGUAGE C STRICT; CREATE FUNCTION get_new_primary() RETURNS INT AS '$libdir/repmgr', 'get_new_primary' LANGUAGE C STRICT;