PG-273: pg_stat_monitor_hook_stats disable to end user.

pull/138/head
Ibrar Ahmed 2021-11-16 11:38:21 +00:00
parent 680c7fda42
commit c8d7209149
3 changed files with 61 additions and 58 deletions

View File

@ -236,26 +236,26 @@ end loop;
END END
$$ language plpgsql; $$ language plpgsql;
CREATE FUNCTION pg_stat_monitor_hook_stats( --CREATE FUNCTION pg_stat_monitor_hook_stats(
OUT hook text, -- OUT hook text,
OUT min_time float8, -- OUT min_time float8,
OUT max_time float8, -- OUT max_time float8,
OUT total_time float8, -- OUT total_time float8,
OUT ncalls int8 -- OUT ncalls int8
) --)
RETURNS SETOF record --RETURNS SETOF record
AS 'MODULE_PATHNAME', 'pg_stat_monitor_hook_stats' --AS 'MODULE_PATHNAME', 'pg_stat_monitor_hook_stats'
LANGUAGE C STRICT VOLATILE PARALLEL SAFE; --LANGUAGE C STRICT VOLATILE PARALLEL SAFE;
CREATE VIEW pg_stat_monitor_hook_stats AS SELECT --CREATE VIEW pg_stat_monitor_hook_stats AS SELECT
hook, -- hook,
min_time, -- min_time,
max_time, -- max_time,
total_time, -- total_time,
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();
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;

View File

@ -237,26 +237,26 @@ end loop;
END END
$$ language plpgsql; $$ language plpgsql;
CREATE FUNCTION pg_stat_monitor_hook_stats( --CREATE FUNCTION pg_stat_monitor_hook_stats(
OUT hook text, -- OUT hook text,
OUT min_time float8, -- OUT min_time float8,
OUT max_time float8, -- OUT max_time float8,
OUT total_time float8, -- OUT total_time float8,
OUT ncalls int8 -- OUT ncalls int8
) --)
RETURNS SETOF record --RETURNS SETOF record
AS 'MODULE_PATHNAME', 'pg_stat_monitor_hook_stats' --AS 'MODULE_PATHNAME', 'pg_stat_monitor_hook_stats'
LANGUAGE C STRICT VOLATILE PARALLEL SAFE; --LANGUAGE C STRICT VOLATILE PARALLEL SAFE;
--
CREATE VIEW pg_stat_monitor_hook_stats AS SELECT --CREATE VIEW pg_stat_monitor_hook_stats AS SELECT
hook, -- hook,
min_time, -- min_time,
max_time, -- max_time,
total_time, -- total_time,
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();
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;

View File

@ -223,28 +223,31 @@ end loop;
END END
$$ language plpgsql; $$ language plpgsql;
CREATE FUNCTION pg_stat_monitor_hook_stats( -- CREATE FUNCTION pg_stat_monitor_hook_stats(
OUT hook text, -- OUT hook text,
OUT min_time float8, -- OUT min_time float8,
OUT max_time float8, -- OUT max_time float8,
OUT total_time float8, -- OUT total_time float8,
OUT ncalls int8 -- OUT ncalls int8
) --)
RETURNS SETOF record --RETURNS SETOF record
AS 'MODULE_PATHNAME', 'pg_stat_monitor_hook_stats' --AS 'MODULE_PATHNAME', 'pg_stat_monitor_hook_stats'
LANGUAGE C STRICT VOLATILE PARALLEL SAFE; --LANGUAGE C STRICT VOLATILE PARALLEL SAFE;
CREATE VIEW pg_stat_monitor_hook_stats AS SELECT --CREATE VIEW pg_stat_monitor_hook_stats AS SELECT
hook, -- hook,
min_time, -- min_time,
max_time, -- max_time,
total_time, -- total_time,
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();
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;
-- 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;