pg_ls_tmpdir()
是一个用于检查表空间临时目录内容的系统函数。
pg_ls_tmpdir()
在PostgreSQL 12 中添加。
用法
pg_ls_tmpdir ( [tablespace
oid
] ) → setof record (name
text
,size
bigint
,modification
timestamp with time zone
)
pg_ls_tmpdir()
返回一组记录,其中包含表空间临时目录中文件的名称、大小和上次修改时间戳。如果未指定表空间,则默认为pg_default
表空间。
pg_ls_tmpdir()
返回未排序的文件记录,因此通常与ORDER BY
结合使用。
请注意,与pg_ls_dir()
相比,它不返回以点开头的文件名、目录和其他特殊文件。
权限
默认情况下,pg_ls_tmpdir()
仅限超级用户和pg_monitor
默认角色的成员使用,但可以授予其他用户EXECUTE
权限以运行此函数。
源代码
pg_ls_tmpdir()
在src/backend/utils/adt/genfile.c 中实现。
更改历史记录
- PostgreSQL 12
- 添加 (提交 9cd92d1a)
示例
显示当前位于默认表空间临时目录中的文件
postgres=# SELECT * FROM pg_ls_tmpdir() ORDER BY modification; name | size | modification --------------------+------------+------------------------ pgsql_tmp3567578.0 | 1073741824 | 2020-12-24 11:09:57+01 pgsql_tmp3567578.1 | 1073741824 | 2020-12-24 11:10:01+01 pgsql_tmp3567578.2 | 1073741824 | 2020-12-24 11:10:05+01 pgsql_tmp3567578.3 | 1073741824 | 2020-12-24 11:10:09+01 pgsql_tmp3567578.4 | 1073741824 | 2020-12-24 11:10:13+01 pgsql_tmp3567578.5 | 716013568 | 2020-12-24 11:10:16+01 (6 rows)
显示当前位于指定表空间临时目录中的文件
postgres=# SELECT * FROM pg_ls_tmpdir((SELECT oid FROM pg_tablespace WHERE spcname='tblspc_1')) ORDER BY modification; name | size | modification ---------------------+------------+------------------------ pgsql_tmp3568453.0 | 1073741824 | 2020-12-24 11:16:54+01 pgsql_tmp3568453.1 | 1073741824 | 2020-12-24 11:16:57+01 pgsql_tmp3568453.2 | 1073741824 | 2020-12-24 11:17:01+01 pgsql_tmp3568453.3 | 1073741824 | 2020-12-24 11:17:05+01 pgsql_tmp3568453.4 | 1073741824 | 2020-12-24 11:17:09+01 pgsql_tmp3568453.5 | 1073741824 | 2020-12-24 11:17:13+01 pgsql_tmp3568453.6 | 1073741824 | 2020-12-24 11:17:17+01 pgsql_tmp3568453.7 | 69771264 | 2020-12-24 11:17:21+01 (17 rows)
参考文献
- PostgreSQL 文档: 通用文件访问函数