mirror of
https://github.com/postgres/postgres.git
synced 2025-07-02 09:02:37 +03:00
Avoid holding a directory FD open across assorted SRF calls.
This extends the fixes made in commit 085b6b667
to other SRFs with the
same bug, namely pg_logdir_ls(), pgrowlocks(), pg_timezone_names(),
pg_ls_dir(), and pg_tablespace_databases().
Also adjust various comments and documentation to warn against
expecting to clean up resources during a ValuePerCall SRF's final
call.
Back-patch to all supported branches, since these functions were
all born broken.
Justin Pryzby, with cosmetic tweaks by me
Discussion: https://postgr.es/m/20200308173103.GC1357@telsasoft.com
This commit is contained in:
@ -180,6 +180,27 @@ select count(*) >= 0 as ok from pg_ls_archive_statusdir();
|
||||
t
|
||||
(1 row)
|
||||
|
||||
select * from (select pg_ls_dir('.') a) a where a = 'base' limit 1;
|
||||
a
|
||||
------
|
||||
base
|
||||
(1 row)
|
||||
|
||||
select * from (select (pg_timezone_names()).name) ptn where name='UTC' limit 1;
|
||||
name
|
||||
------
|
||||
UTC
|
||||
(1 row)
|
||||
|
||||
select count(*) > 0 from
|
||||
(select pg_tablespace_databases(oid) as pts from pg_tablespace
|
||||
where spcname = 'pg_default') pts
|
||||
join pg_database db on pts.pts = db.oid;
|
||||
?column?
|
||||
----------
|
||||
t
|
||||
(1 row)
|
||||
|
||||
--
|
||||
-- Test adding a support function to a subject function
|
||||
--
|
||||
|
@ -51,6 +51,15 @@ 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 * from (select pg_ls_dir('.') a) a where a = 'base' limit 1;
|
||||
|
||||
select * from (select (pg_timezone_names()).name) ptn where name='UTC' limit 1;
|
||||
|
||||
select count(*) > 0 from
|
||||
(select pg_tablespace_databases(oid) as pts from pg_tablespace
|
||||
where spcname = 'pg_default') pts
|
||||
join pg_database db on pts.pts = db.oid;
|
||||
|
||||
--
|
||||
-- Test adding a support function to a subject function
|
||||
--
|
||||
|
Reference in New Issue
Block a user