PolarDBforPostgreSQL/external/polar_monitor/polar_monitor--1.1--1.2.sql

107 lines
3.3 KiB
SQL

/* contrib/polar_monitor/polar_monitor--1.1--1.2.sql */
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
\echo Use "ALTER EXTENSION polar_monitor UPDATE TO '1.2'" to load this file. \quit
/* First we have to remove them from the extension */
ALTER EXTENSION polar_monitor DROP FUNCTION polar_get_replication_slots(OUT name, OUT name, OUT text,
OUT oid, OUT boolean, OUT boolean, OUT integer, OUT xid, OUT xid, OUT pg_lsn, OUT pg_lsn, OUT pg_lsn);
ALTER EXTENSION polar_monitor DROP VIEW polar_replication_slots;
/* Then we can drop them */
DROP VIEW polar_replication_slots;
DROP FUNCTION polar_get_replication_slots(OUT name, OUT name, OUT text, OUT oid, OUT boolean, OUT boolean,
OUT integer, OUT xid, OUT xid, OUT pg_lsn, OUT pg_lsn, OUT pg_lsn);
/* Now redefine */
CREATE OR replace FUNCTION polar_get_replication_slots(
OUT slot_name name,
OUT plugin name,
OUT slot_type text,
OUT datoid oid,
OUT temporary boolean,
OUT active boolean,
OUT active_pid integer,
OUT xmin xid,
OUT catalog_xmin xid,
OUT restart_lsn pg_lsn,
OUT confirmed_flush_lsn pg_lsn,
OUT polar_replica_apply_lsn pg_lsn,
OUT wal_status text,
OUT safe_wal_size int8
)
RETURNS record
AS 'MODULE_PATHNAME', 'polar_get_replication_slots'
LANGUAGE C PARALLEL SAFE;
CREATE VIEW polar_replication_slots AS
SELECT
L.slot_name,
L.plugin,
L.slot_type,
L.datoid,
D.datname AS database,
L.temporary,
L.active,
L.active_pid,
L.xmin,
L.catalog_xmin,
L.restart_lsn,
L.confirmed_flush_lsn,
L.polar_replica_apply_lsn,
L.wal_status,
L.safe_wal_size
FROM polar_get_replication_slots() AS L
LEFT JOIN pg_database D ON (L.datoid = D.oid);
-- POLAR: get flashback log write status
CREATE FUNCTION polar_stat_flashback_log_write(
OUT write_total_num bigint,
OUT bg_worker_write_num bigint,
OUT segs_added_total_num bigint,
OUT max_seg_no bigint,
OUT write_result pg_lsn,
OUT fbpoint_flog_start_ptr pg_lsn)
RETURNS RECORD
AS 'MODULE_PATHNAME', 'polar_stat_flashback_log_write'
LANGUAGE C PARALLEL SAFE;
-- POLAR: get flashback log buffer status
CREATE FUNCTION polar_stat_flashback_log_buf(
OUT insert_curr_ptr pg_lsn,
OUT insert_prev_ptr pg_lsn,
OUT initalized_upto pg_lsn,
OUT keep_wal_lsn pg_lsn,
OUT is_ready boolean)
RETURNS RECORD
AS 'MODULE_PATHNAME', 'polar_stat_flashback_log_buf'
LANGUAGE C PARALLEL SAFE;
-- POLAR: get flashback log list status
CREATE FUNCTION polar_stat_flashback_log_list(
OUT insert_total_num bigint,
OUT remove_total_num bigint,
OUT bg_remove_num bigint)
RETURNS RECORD
AS 'MODULE_PATHNAME', 'polar_stat_flashback_log_list'
LANGUAGE C PARALLEL SAFE;
-- POLAR: get flashback logindex status
CREATE FUNCTION polar_stat_flashback_logindex(
OUT max_ptr_in_mem bigint,
OUT max_ptr_in_disk bigint,
OUT is_ready boolean)
RETURNS RECORD
AS 'MODULE_PATHNAME', 'polar_stat_flashback_logindex'
LANGUAGE C PARALLEL SAFE;
-- POLAR: get flashback logindex queue status
CREATE FUNCTION polar_stat_flashback_logindex_queue(
OUT free_up_total_times bigint,
OUT read_from_file_rec_nums bigint,
OUT read_from_queue_rec_nums bigint)
RETURNS RECORD
AS 'MODULE_PATHNAME', 'polar_stat_flashback_logindex_queue'
LANGUAGE C PARALLEL SAFE;