mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Add show_data option to pg_get_wal_block_info.
Allow users to opt out of returning FPI data and block data from
pg_get_wal_block_info as an optimization. Testing has shown that this
can make function execution over twice as fast in some cases.
When pg_get_wal_block_info is called with "show_data := false", it
always returns NULL values for its block_data and block_fpi_data bytea
output parameters. Nothing else changes. In particular, the function
will still return the usual per-block summary of block data/FPI space
overhead. Use of "show_data := false" is therefore feasible with all
queries that don't specifically require these raw binary strings.
Follow-up to recent work in commit 122376f0
. There still hasn't been a
stable release with the pg_get_wal_block_info function, so no bump in
the pg_walinspect extension version.
Per suggestion from Melanie Plageman.
Author: Peter Geoghegan <pg@bowt.ie>
Discussion: https://postgr.es/m/CAAKRu_bJvbcYBRj2cN6G2xV7B7-Ja+pjTO1nEnEhRR8OXYiABA@mail.gmail.com
Discussion: https://postgr.es/m/CAH2-Wzm9shOkEDM10_+qOZkRSQhKVxwBFiehH6EHWQQRd_rDPw@mail.gmail.com
This commit is contained in:
@ -101,7 +101,7 @@ SELECT has_function_privilege('regress_pg_walinspect',
|
||||
SELECT has_function_privilege('regress_pg_walinspect',
|
||||
'pg_get_wal_stats(pg_lsn, pg_lsn, boolean) ', 'EXECUTE'); -- no
|
||||
SELECT has_function_privilege('regress_pg_walinspect',
|
||||
'pg_get_wal_block_info(pg_lsn, pg_lsn) ', 'EXECUTE'); -- no
|
||||
'pg_get_wal_block_info(pg_lsn, pg_lsn, boolean) ', 'EXECUTE'); -- no
|
||||
|
||||
-- Functions accessible by users with role pg_read_server_files.
|
||||
GRANT pg_read_server_files TO regress_pg_walinspect;
|
||||
@ -113,7 +113,7 @@ SELECT has_function_privilege('regress_pg_walinspect',
|
||||
SELECT has_function_privilege('regress_pg_walinspect',
|
||||
'pg_get_wal_stats(pg_lsn, pg_lsn, boolean) ', 'EXECUTE'); -- yes
|
||||
SELECT has_function_privilege('regress_pg_walinspect',
|
||||
'pg_get_wal_block_info(pg_lsn, pg_lsn) ', 'EXECUTE'); -- yes
|
||||
'pg_get_wal_block_info(pg_lsn, pg_lsn, boolean) ', 'EXECUTE'); -- yes
|
||||
|
||||
REVOKE pg_read_server_files FROM regress_pg_walinspect;
|
||||
|
||||
@ -124,7 +124,7 @@ GRANT EXECUTE ON FUNCTION pg_get_wal_records_info(pg_lsn, pg_lsn)
|
||||
TO regress_pg_walinspect;
|
||||
GRANT EXECUTE ON FUNCTION pg_get_wal_stats(pg_lsn, pg_lsn, boolean)
|
||||
TO regress_pg_walinspect;
|
||||
GRANT EXECUTE ON FUNCTION pg_get_wal_block_info(pg_lsn, pg_lsn)
|
||||
GRANT EXECUTE ON FUNCTION pg_get_wal_block_info(pg_lsn, pg_lsn, boolean)
|
||||
TO regress_pg_walinspect;
|
||||
|
||||
SELECT has_function_privilege('regress_pg_walinspect',
|
||||
@ -134,7 +134,7 @@ SELECT has_function_privilege('regress_pg_walinspect',
|
||||
SELECT has_function_privilege('regress_pg_walinspect',
|
||||
'pg_get_wal_stats(pg_lsn, pg_lsn, boolean) ', 'EXECUTE'); -- yes
|
||||
SELECT has_function_privilege('regress_pg_walinspect',
|
||||
'pg_get_wal_block_info(pg_lsn, pg_lsn) ', 'EXECUTE'); -- yes
|
||||
'pg_get_wal_block_info(pg_lsn, pg_lsn, boolean) ', 'EXECUTE'); -- yes
|
||||
|
||||
REVOKE EXECUTE ON FUNCTION pg_get_wal_record_info(pg_lsn)
|
||||
FROM regress_pg_walinspect;
|
||||
@ -142,7 +142,7 @@ REVOKE EXECUTE ON FUNCTION pg_get_wal_records_info(pg_lsn, pg_lsn)
|
||||
FROM regress_pg_walinspect;
|
||||
REVOKE EXECUTE ON FUNCTION pg_get_wal_stats(pg_lsn, pg_lsn, boolean)
|
||||
FROM regress_pg_walinspect;
|
||||
REVOKE EXECUTE ON FUNCTION pg_get_wal_block_info(pg_lsn, pg_lsn)
|
||||
REVOKE EXECUTE ON FUNCTION pg_get_wal_block_info(pg_lsn, pg_lsn, boolean)
|
||||
FROM regress_pg_walinspect;
|
||||
|
||||
-- ===================================================================
|
||||
|
Reference in New Issue
Block a user