pg_ls_tmpdir() 是一个用于检查 表空间 临时目录内容的系统函数。
pg_ls_tmpdir() 在 PostgreSQL 12 中引入。
用法
pg_ls_tmpdir ( [tablespaceoid] ) → setof record (nametext,sizebigint,modificationtimestamp 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 文档: 通用文件访问函数
