pg13
This commit is contained in:
149
dist/win-x64/postgres/share/system_views.sql
vendored
149
dist/win-x64/postgres/share/system_views.sql
vendored
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* PostgreSQL System Views
|
||||
*
|
||||
* Copyright (c) 1996-2019, PostgreSQL Global Development Group
|
||||
* Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
||||
*
|
||||
* src/backend/catalog/system_views.sql
|
||||
*
|
||||
@@ -317,7 +317,8 @@ CREATE VIEW pg_available_extensions AS
|
||||
|
||||
CREATE VIEW pg_available_extension_versions AS
|
||||
SELECT E.name, E.version, (X.extname IS NOT NULL) AS installed,
|
||||
E.superuser, E.relocatable, E.schema, E.requires, E.comment
|
||||
E.superuser, E.trusted, E.relocatable,
|
||||
E.schema, E.requires, E.comment
|
||||
FROM pg_available_extension_versions() AS E
|
||||
LEFT JOIN pg_extension AS X
|
||||
ON E.name = X.extname AND E.version = X.extversion;
|
||||
@@ -547,6 +548,12 @@ CREATE VIEW pg_config AS
|
||||
REVOKE ALL on pg_config FROM PUBLIC;
|
||||
REVOKE EXECUTE ON FUNCTION pg_config() FROM PUBLIC;
|
||||
|
||||
CREATE VIEW pg_shmem_allocations AS
|
||||
SELECT * FROM pg_get_shmem_allocations();
|
||||
|
||||
REVOKE ALL ON pg_shmem_allocations FROM PUBLIC;
|
||||
REVOKE EXECUTE ON FUNCTION pg_get_shmem_allocations() FROM PUBLIC;
|
||||
|
||||
-- Statistics views
|
||||
|
||||
CREATE VIEW pg_stat_all_tables AS
|
||||
@@ -566,6 +573,7 @@ CREATE VIEW pg_stat_all_tables AS
|
||||
pg_stat_get_live_tuples(C.oid) AS n_live_tup,
|
||||
pg_stat_get_dead_tuples(C.oid) AS n_dead_tup,
|
||||
pg_stat_get_mod_since_analyze(C.oid) AS n_mod_since_analyze,
|
||||
pg_stat_get_ins_since_vacuum(C.oid) AS n_ins_since_vacuum,
|
||||
pg_stat_get_last_vacuum_time(C.oid) as last_vacuum,
|
||||
pg_stat_get_last_autovacuum_time(C.oid) as last_autovacuum,
|
||||
pg_stat_get_last_analyze_time(C.oid) as last_analyze,
|
||||
@@ -634,16 +642,16 @@ CREATE VIEW pg_statio_all_tables AS
|
||||
pg_stat_get_blocks_fetched(T.oid) -
|
||||
pg_stat_get_blocks_hit(T.oid) AS toast_blks_read,
|
||||
pg_stat_get_blocks_hit(T.oid) AS toast_blks_hit,
|
||||
sum(pg_stat_get_blocks_fetched(X.indexrelid) -
|
||||
pg_stat_get_blocks_hit(X.indexrelid))::bigint AS tidx_blks_read,
|
||||
sum(pg_stat_get_blocks_hit(X.indexrelid))::bigint AS tidx_blks_hit
|
||||
pg_stat_get_blocks_fetched(X.indexrelid) -
|
||||
pg_stat_get_blocks_hit(X.indexrelid) AS tidx_blks_read,
|
||||
pg_stat_get_blocks_hit(X.indexrelid) AS tidx_blks_hit
|
||||
FROM pg_class C LEFT JOIN
|
||||
pg_index I ON C.oid = I.indrelid LEFT JOIN
|
||||
pg_class T ON C.reltoastrelid = T.oid LEFT JOIN
|
||||
pg_index X ON T.oid = X.indrelid
|
||||
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
|
||||
WHERE C.relkind IN ('r', 't', 'm')
|
||||
GROUP BY C.oid, N.nspname, C.relname, T.oid, X.indrelid;
|
||||
GROUP BY C.oid, N.nspname, C.relname, T.oid, X.indexrelid;
|
||||
|
||||
CREATE VIEW pg_statio_sys_tables AS
|
||||
SELECT * FROM pg_statio_all_tables
|
||||
@@ -734,6 +742,7 @@ CREATE VIEW pg_stat_activity AS
|
||||
S.datid AS datid,
|
||||
D.datname AS datname,
|
||||
S.pid,
|
||||
S.leader_pid,
|
||||
S.usesysid,
|
||||
U.rolname AS usename,
|
||||
S.application_name,
|
||||
@@ -781,13 +790,27 @@ CREATE VIEW pg_stat_replication AS
|
||||
JOIN pg_stat_get_wal_senders() AS W ON (S.pid = W.pid)
|
||||
LEFT JOIN pg_authid AS U ON (S.usesysid = U.oid);
|
||||
|
||||
CREATE VIEW pg_stat_slru AS
|
||||
SELECT
|
||||
s.name,
|
||||
s.blks_zeroed,
|
||||
s.blks_hit,
|
||||
s.blks_read,
|
||||
s.blks_written,
|
||||
s.blks_exists,
|
||||
s.flushes,
|
||||
s.truncates,
|
||||
s.stats_reset
|
||||
FROM pg_stat_get_slru() s;
|
||||
|
||||
CREATE VIEW pg_stat_wal_receiver AS
|
||||
SELECT
|
||||
s.pid,
|
||||
s.status,
|
||||
s.receive_start_lsn,
|
||||
s.receive_start_tli,
|
||||
s.received_lsn,
|
||||
s.written_lsn,
|
||||
s.flushed_lsn,
|
||||
s.received_tli,
|
||||
s.last_msg_send_time,
|
||||
s.last_msg_receipt_time,
|
||||
@@ -826,7 +849,8 @@ CREATE VIEW pg_stat_ssl AS
|
||||
S.ssl_client_dn AS client_dn,
|
||||
S.ssl_client_serial AS client_serial,
|
||||
S.ssl_issuer_dn AS issuer_dn
|
||||
FROM pg_stat_get_activity(NULL) AS S;
|
||||
FROM pg_stat_get_activity(NULL) AS S
|
||||
WHERE S.client_port IS NOT NULL;
|
||||
|
||||
CREATE VIEW pg_stat_gssapi AS
|
||||
SELECT
|
||||
@@ -834,7 +858,8 @@ CREATE VIEW pg_stat_gssapi AS
|
||||
S.gss_auth AS gss_authenticated,
|
||||
S.gss_princ AS principal,
|
||||
S.gss_enc AS encrypted
|
||||
FROM pg_stat_get_activity(NULL) AS S;
|
||||
FROM pg_stat_get_activity(NULL) AS S
|
||||
WHERE S.client_port IS NOT NULL;
|
||||
|
||||
CREATE VIEW pg_replication_slots AS
|
||||
SELECT
|
||||
@@ -849,7 +874,9 @@ CREATE VIEW pg_replication_slots AS
|
||||
L.xmin,
|
||||
L.catalog_xmin,
|
||||
L.restart_lsn,
|
||||
L.confirmed_flush_lsn
|
||||
L.confirmed_flush_lsn,
|
||||
L.wal_status,
|
||||
L.safe_wal_size
|
||||
FROM pg_get_replication_slots() AS L
|
||||
LEFT JOIN pg_database D ON (L.datoid = D.oid);
|
||||
|
||||
@@ -946,6 +973,27 @@ CREATE VIEW pg_stat_bgwriter AS
|
||||
pg_stat_get_buf_alloc() AS buffers_alloc,
|
||||
pg_stat_get_bgwriter_stat_reset_time() AS stats_reset;
|
||||
|
||||
CREATE VIEW pg_stat_progress_analyze AS
|
||||
SELECT
|
||||
S.pid AS pid, S.datid AS datid, D.datname AS datname,
|
||||
CAST(S.relid AS oid) AS relid,
|
||||
CASE S.param1 WHEN 0 THEN 'initializing'
|
||||
WHEN 1 THEN 'acquiring sample rows'
|
||||
WHEN 2 THEN 'acquiring inherited sample rows'
|
||||
WHEN 3 THEN 'computing statistics'
|
||||
WHEN 4 THEN 'computing extended statistics'
|
||||
WHEN 5 THEN 'finalizing analyze'
|
||||
END AS phase,
|
||||
S.param2 AS sample_blks_total,
|
||||
S.param3 AS sample_blks_scanned,
|
||||
S.param4 AS ext_stats_total,
|
||||
S.param5 AS ext_stats_computed,
|
||||
S.param6 AS child_tables_total,
|
||||
S.param7 AS child_tables_done,
|
||||
CAST(S.param8 AS oid) AS current_child_table_relid
|
||||
FROM pg_stat_get_progress_info('ANALYZE') AS S
|
||||
LEFT JOIN pg_database D ON S.datid = D.oid;
|
||||
|
||||
CREATE VIEW pg_stat_progress_vacuum AS
|
||||
SELECT
|
||||
S.pid AS pid, S.datid AS datid, D.datname AS datname,
|
||||
@@ -1026,6 +1074,22 @@ CREATE VIEW pg_stat_progress_create_index AS
|
||||
FROM pg_stat_get_progress_info('CREATE INDEX') AS S
|
||||
LEFT JOIN pg_database D ON S.datid = D.oid;
|
||||
|
||||
CREATE VIEW pg_stat_progress_basebackup AS
|
||||
SELECT
|
||||
S.pid AS pid,
|
||||
CASE S.param1 WHEN 0 THEN 'initializing'
|
||||
WHEN 1 THEN 'waiting for checkpoint to finish'
|
||||
WHEN 2 THEN 'estimating backup size'
|
||||
WHEN 3 THEN 'streaming database files'
|
||||
WHEN 4 THEN 'waiting for wal archiving to finish'
|
||||
WHEN 5 THEN 'transferring wal files'
|
||||
END AS phase,
|
||||
CASE S.param2 WHEN -1 THEN NULL ELSE S.param2 END AS backup_total,
|
||||
S.param3 AS backup_streamed,
|
||||
S.param4 AS tablespaces_total,
|
||||
S.param5 AS tablespaces_streamed
|
||||
FROM pg_stat_get_progress_info('BASEBACKUP') AS S;
|
||||
|
||||
CREATE VIEW pg_user_mappings AS
|
||||
SELECT
|
||||
U.oid AS umid,
|
||||
@@ -1232,6 +1296,15 @@ LANGUAGE INTERNAL
|
||||
STRICT IMMUTABLE PARALLEL SAFE
|
||||
AS 'jsonb_set';
|
||||
|
||||
CREATE OR REPLACE FUNCTION
|
||||
jsonb_set_lax(jsonb_in jsonb, path text[] , replacement jsonb,
|
||||
create_if_missing boolean DEFAULT true,
|
||||
null_value_treatment text DEFAULT 'use_json_null')
|
||||
RETURNS jsonb
|
||||
LANGUAGE INTERNAL
|
||||
CALLED ON NULL INPUT IMMUTABLE PARALLEL SAFE
|
||||
AS 'jsonb_set_lax';
|
||||
|
||||
CREATE OR REPLACE FUNCTION
|
||||
parse_ident(str text, strict boolean DEFAULT true)
|
||||
RETURNS text[]
|
||||
@@ -1287,6 +1360,61 @@ LANGUAGE INTERNAL
|
||||
STRICT IMMUTABLE PARALLEL SAFE
|
||||
AS 'jsonb_path_query_first';
|
||||
|
||||
CREATE OR REPLACE FUNCTION
|
||||
jsonb_path_exists_tz(target jsonb, path jsonpath, vars jsonb DEFAULT '{}',
|
||||
silent boolean DEFAULT false)
|
||||
RETURNS boolean
|
||||
LANGUAGE INTERNAL
|
||||
STRICT STABLE PARALLEL SAFE
|
||||
AS 'jsonb_path_exists_tz';
|
||||
|
||||
CREATE OR REPLACE FUNCTION
|
||||
jsonb_path_match_tz(target jsonb, path jsonpath, vars jsonb DEFAULT '{}',
|
||||
silent boolean DEFAULT false)
|
||||
RETURNS boolean
|
||||
LANGUAGE INTERNAL
|
||||
STRICT STABLE PARALLEL SAFE
|
||||
AS 'jsonb_path_match_tz';
|
||||
|
||||
CREATE OR REPLACE FUNCTION
|
||||
jsonb_path_query_tz(target jsonb, path jsonpath, vars jsonb DEFAULT '{}',
|
||||
silent boolean DEFAULT false)
|
||||
RETURNS SETOF jsonb
|
||||
LANGUAGE INTERNAL
|
||||
STRICT STABLE PARALLEL SAFE
|
||||
AS 'jsonb_path_query_tz';
|
||||
|
||||
CREATE OR REPLACE FUNCTION
|
||||
jsonb_path_query_array_tz(target jsonb, path jsonpath, vars jsonb DEFAULT '{}',
|
||||
silent boolean DEFAULT false)
|
||||
RETURNS jsonb
|
||||
LANGUAGE INTERNAL
|
||||
STRICT STABLE PARALLEL SAFE
|
||||
AS 'jsonb_path_query_array_tz';
|
||||
|
||||
CREATE OR REPLACE FUNCTION
|
||||
jsonb_path_query_first_tz(target jsonb, path jsonpath, vars jsonb DEFAULT '{}',
|
||||
silent boolean DEFAULT false)
|
||||
RETURNS jsonb
|
||||
LANGUAGE INTERNAL
|
||||
STRICT STABLE PARALLEL SAFE
|
||||
AS 'jsonb_path_query_first_tz';
|
||||
|
||||
-- default normalization form is NFC, per SQL standard
|
||||
CREATE OR REPLACE FUNCTION
|
||||
"normalize"(text, text DEFAULT 'NFC')
|
||||
RETURNS text
|
||||
LANGUAGE internal
|
||||
STRICT IMMUTABLE PARALLEL SAFE
|
||||
AS 'unicode_normalize_func';
|
||||
|
||||
CREATE OR REPLACE FUNCTION
|
||||
is_normalized(text, text DEFAULT 'NFC')
|
||||
RETURNS boolean
|
||||
LANGUAGE internal
|
||||
STRICT IMMUTABLE PARALLEL SAFE
|
||||
AS 'unicode_is_normalized';
|
||||
|
||||
--
|
||||
-- The default permissions for functions mean that anyone can execute them.
|
||||
-- A number of functions shouldn't be executable by just anyone, but rather
|
||||
@@ -1310,6 +1438,7 @@ REVOKE EXECUTE ON FUNCTION pg_promote(boolean, integer) FROM public;
|
||||
|
||||
REVOKE EXECUTE ON FUNCTION pg_stat_reset() FROM public;
|
||||
REVOKE EXECUTE ON FUNCTION pg_stat_reset_shared(text) FROM public;
|
||||
REVOKE EXECUTE ON FUNCTION pg_stat_reset_slru(text) FROM public;
|
||||
REVOKE EXECUTE ON FUNCTION pg_stat_reset_single_table_counters(oid) FROM public;
|
||||
REVOKE EXECUTE ON FUNCTION pg_stat_reset_single_function_counters(oid) FROM public;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user