diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/catalog/system_functions.sql | 4 | ||||
-rw-r--r-- | src/backend/utils/adt/genfile.c | 9 | ||||
-rw-r--r-- | src/include/catalog/catversion.h | 2 | ||||
-rw-r--r-- | src/include/catalog/pg_proc.dat | 6 | ||||
-rw-r--r-- | src/test/regress/expected/misc_functions.out | 6 | ||||
-rw-r--r-- | src/test/regress/sql/misc_functions.sql | 1 |
6 files changed, 27 insertions, 1 deletions
diff --git a/src/backend/catalog/system_functions.sql b/src/backend/catalog/system_functions.sql index b0d0de051e7..fd6b606ae90 100644 --- a/src/backend/catalog/system_functions.sql +++ b/src/backend/catalog/system_functions.sql @@ -700,6 +700,8 @@ REVOKE EXECUTE ON FUNCTION pg_ls_waldir() FROM public; REVOKE EXECUTE ON FUNCTION pg_ls_archive_statusdir() FROM public; +REVOKE EXECUTE ON FUNCTION pg_ls_summariesdir() FROM public; + REVOKE EXECUTE ON FUNCTION pg_ls_tmpdir() FROM public; REVOKE EXECUTE ON FUNCTION pg_ls_tmpdir(oid) FROM public; @@ -770,6 +772,8 @@ GRANT EXECUTE ON FUNCTION pg_ls_waldir() TO pg_monitor; GRANT EXECUTE ON FUNCTION pg_ls_archive_statusdir() TO pg_monitor; +GRANT EXECUTE ON FUNCTION pg_ls_summariesdir() TO pg_monitor; + GRANT EXECUTE ON FUNCTION pg_ls_tmpdir() TO pg_monitor; GRANT EXECUTE ON FUNCTION pg_ls_tmpdir(oid) TO pg_monitor; diff --git a/src/backend/utils/adt/genfile.c b/src/backend/utils/adt/genfile.c index 24b95c32b78..91d0bb46309 100644 --- a/src/backend/utils/adt/genfile.c +++ b/src/backend/utils/adt/genfile.c @@ -690,6 +690,15 @@ pg_ls_archive_statusdir(PG_FUNCTION_ARGS) } /* + * Function to return the list of files in the WAL summaries directory. + */ +Datum +pg_ls_summariesdir(PG_FUNCTION_ARGS) +{ + return pg_ls_dir_files(fcinfo, XLOGDIR "/summaries", true); +} + +/* * Function to return the list of files in the PG_LOGICAL_SNAPSHOTS_DIR * directory. */ diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h index 8cb918d9116..ca7dc84f48d 100644 --- a/src/include/catalog/catversion.h +++ b/src/include/catalog/catversion.h @@ -57,6 +57,6 @@ */ /* yyyymmddN */ -#define CATALOG_VERSION_NO 202410112 +#define CATALOG_VERSION_NO 202410113 #endif diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat index 8876bebde07..bcfb92528ee 100644 --- a/src/include/catalog/pg_proc.dat +++ b/src/include/catalog/pg_proc.dat @@ -12186,6 +12186,12 @@ provolatile => 'v', prorettype => 'record', proargtypes => '', proallargtypes => '{text,int8,timestamptz}', proargmodes => '{o,o,o}', proargnames => '{name,size,modification}', prosrc => 'pg_ls_waldir' }, +{ oid => '9220', descr => 'list of files in the pg_wal/summaries directory', + proname => 'pg_ls_summariesdir', procost => '10', prorows => '20', + proretset => 't', provolatile => 'v', prorettype => 'record', + proargtypes => '', proallargtypes => '{text,int8,timestamptz}', + proargmodes => '{o,o,o}', proargnames => '{name,size,modification}', + prosrc => 'pg_ls_summariesdir' }, { oid => '5031', descr => 'list of files in the archive_status directory', proname => 'pg_ls_archive_statusdir', procost => '10', prorows => '20', proretset => 't', provolatile => 'v', prorettype => 'record', diff --git a/src/test/regress/expected/misc_functions.out b/src/test/regress/expected/misc_functions.out index 5f7bf6b8af6..36b1201f9f5 100644 --- a/src/test/regress/expected/misc_functions.out +++ b/src/test/regress/expected/misc_functions.out @@ -412,6 +412,12 @@ select count(*) >= 0 as ok from pg_ls_archive_statusdir(); t (1 row) +select count(*) >= 0 as ok from pg_ls_summariesdir(); + ok +---- + t +(1 row) + -- pg_read_file() select length(pg_read_file('postmaster.pid')) > 20; ?column? diff --git a/src/test/regress/sql/misc_functions.sql b/src/test/regress/sql/misc_functions.sql index 1e90d60af35..b7495d70eb0 100644 --- a/src/test/regress/sql/misc_functions.sql +++ b/src/test/regress/sql/misc_functions.sql @@ -163,6 +163,7 @@ select (w).size = :segsize as ok from (select pg_ls_waldir() w) ss where length((w).name) = 24 limit 1; select count(*) >= 0 as ok from pg_ls_archive_statusdir(); +select count(*) >= 0 as ok from pg_ls_summariesdir(); -- pg_read_file() select length(pg_read_file('postmaster.pid')) > 20; |