pg_stat_file() 是一个系统函数,它返回关于本地文件系统中一个文件或其他对象的元数据。
pg_stat_file() 在 PostgreSQL 8.1 中被添加。
用法
pg_stat_file (filenametext[,missing_okboolean] )
→ record (sizebigint,accesstimestamptz,modificationtimestamptz,changetimestamptz,creationtimestamptz, isdirboolean)
pg_stat_file() 返回一行,其中包含关于本地文件系统中,postgres 系统用户可以访问的文件或其他对象的元数据。
它指示文件系统对象是否是一个目录,但不指示对象是否是符号链接(symlink)。
权限
默认情况下,pg_stat_file() 仅限于超级用户使用,但其他用户可以被授予 EXECUTE 权限来运行此函数。
Source
pg_stat_file() 实现于 src/backend/utils/adt/genfile.c。
变更历史
- PostgreSQL 8.1
- 添加(提交 b609695b)
示例
基本执行 pg_stat_file()
postgres=# SELECT * FROM pg_stat_file(current_setting('data_directory') || '/global/pg_control');
size | access | modification | change | creation | isdir
------+------------------------+------------------------+------------------------+----------+-------
8192 | 2020-12-24 11:13:59+01 | 2020-12-24 12:04:32+01 | 2020-12-24 12:04:32+01 | | f
(1 row)
尝试查询一个不存在的文件
postgres=# SELECT * FROM pg_stat_file('/foo/bar.txt');
ERROR: could not stat file "/foo/bar.txt": No such file or directory
尝试查询一个权限不可用的文件
postgres=# SELECT * FROM pg_stat_file('/root/bar.txt');
ERROR: could not stat file "/root/bar.txt": Permission denied
参考资料
- PostgreSQL 文档: 通用文件访问函数
