Merge pull request #170 from darkfronza/PG-329_fix_errors_view_sql_master

PG-329: Fix creation of pg_stat_monitor_errors view on SQL files.
pull/172/head
Ibrar Ahmed 2022-01-18 19:30:40 +05:00 committed by GitHub
commit 26000f40b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 68 additions and 2 deletions

View File

@ -241,9 +241,42 @@ $$ language plpgsql;
-- total_time / greatest(ncalls, 1) as avg_time, -- total_time / greatest(ncalls, 1) as avg_time,
-- ncalls, -- ncalls,
-- ROUND(CAST(total_time / greatest(sum(total_time) OVER(), 0.00000001) * 100 as numeric), 2)::text || '%' as load_comparison -- ROUND(CAST(total_time / greatest(sum(total_time) OVER(), 0.00000001) * 100 as numeric), 2)::text || '%' as load_comparison
--FROM pg_stat_monitor_hook_stats(); -- FROM pg_stat_monitor_hook_stats();
CREATE FUNCTION pg_stat_monitor_errors(
OUT severity int,
OUT message text,
OUT msgtime text,
OUT calls int8
)
RETURNS SETOF record
AS 'MODULE_PATHNAME', 'pg_stat_monitor_errors'
LANGUAGE C STRICT VOLATILE PARALLEL SAFE;
CREATE OR REPLACE FUNCTION pgsm_log_severity_as_text(severity int) RETURNS TEXT AS
$$
SELECT
CASE
WHEN severity = 0 THEN 'INFO'
WHEN severity = 1 THEN 'WARNING'
WHEN severity = 2 THEN 'ERROR'
END
$$
LANGUAGE SQL PARALLEL SAFE;
CREATE VIEW pg_stat_monitor_errors AS SELECT
pgsm_log_severity_as_text(severity) as severity, message, msgtime, calls
FROM pg_stat_monitor_errors();
CREATE FUNCTION pg_stat_monitor_reset_errors()
RETURNS void
AS 'MODULE_PATHNAME'
LANGUAGE C PARALLEL SAFE;
GRANT SELECT ON pg_stat_monitor TO PUBLIC; GRANT SELECT ON pg_stat_monitor TO PUBLIC;
GRANT SELECT ON pg_stat_monitor_settings TO PUBLIC; GRANT SELECT ON pg_stat_monitor_settings TO PUBLIC;
GRANT SELECT ON pg_stat_monitor_errors TO PUBLIC;
-- Don't want this to be available to non-superusers. -- Don't want this to be available to non-superusers.
REVOKE ALL ON FUNCTION pg_stat_monitor_reset() FROM PUBLIC; REVOKE ALL ON FUNCTION pg_stat_monitor_reset() FROM PUBLIC;
REVOKE ALL ON FUNCTION pg_stat_monitor_reset_errors() FROM PUBLIC;

View File

@ -242,9 +242,42 @@ $$ language plpgsql;
-- total_time / greatest(ncalls, 1) as avg_time, -- total_time / greatest(ncalls, 1) as avg_time,
-- ncalls, -- ncalls,
-- ROUND(CAST(total_time / greatest(sum(total_time) OVER(), 0.00000001) * 100 as numeric), 2)::text || '%' as load_comparison -- ROUND(CAST(total_time / greatest(sum(total_time) OVER(), 0.00000001) * 100 as numeric), 2)::text || '%' as load_comparison
--FROM pg_stat_monitor_hook_stats(); -- FROM pg_stat_monitor_hook_stats();
CREATE FUNCTION pg_stat_monitor_errors(
OUT severity int,
OUT message text,
OUT msgtime text,
OUT calls int8
)
RETURNS SETOF record
AS 'MODULE_PATHNAME', 'pg_stat_monitor_errors'
LANGUAGE C STRICT VOLATILE PARALLEL SAFE;
CREATE OR REPLACE FUNCTION pgsm_log_severity_as_text(severity int) RETURNS TEXT AS
$$
SELECT
CASE
WHEN severity = 0 THEN 'INFO'
WHEN severity = 1 THEN 'WARNING'
WHEN severity = 2 THEN 'ERROR'
END
$$
LANGUAGE SQL PARALLEL SAFE;
CREATE VIEW pg_stat_monitor_errors AS SELECT
pgsm_log_severity_as_text(severity) as severity, message, msgtime, calls
FROM pg_stat_monitor_errors();
CREATE FUNCTION pg_stat_monitor_reset_errors()
RETURNS void
AS 'MODULE_PATHNAME'
LANGUAGE C PARALLEL SAFE;
GRANT SELECT ON pg_stat_monitor TO PUBLIC; GRANT SELECT ON pg_stat_monitor TO PUBLIC;
GRANT SELECT ON pg_stat_monitor_settings TO PUBLIC; GRANT SELECT ON pg_stat_monitor_settings TO PUBLIC;
GRANT SELECT ON pg_stat_monitor_errors TO PUBLIC;
-- Don't want this to be available to non-superusers. -- Don't want this to be available to non-superusers.
REVOKE ALL ON FUNCTION pg_stat_monitor_reset() FROM PUBLIC; REVOKE ALL ON FUNCTION pg_stat_monitor_reset() FROM PUBLIC;
REVOKE ALL ON FUNCTION pg_stat_monitor_reset_errors() FROM PUBLIC;