pg_stat_file()
是一个返回有关本地文件系统上的文件或其他对象元数据的系统函数。
pg_stat_file()
在 PostgreSQL 8.1 中添加。
用法
pg_stat_file (filename
text
[,missing_ok
boolean
] )
→ record (size
bigint
,access
timestamptz,modification
timestamptz
,change
timestamptz
,creation
timestamptz
, isdirboolean
)
pg_stat_file()
返回包含有关本地文件系统上文件或其他对象的元数据的一行,postgres
系统用户可以访问这些文件或对象。
它指示文件系统对象是否为目录,但不指示对象是否为符号链接(符号链接)。
权限
默认情况下,pg_stat_file()
仅限超级用户使用,但可以授予其他用户 EXECUTE
权限以运行此函数。
源代码
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 文档: 通用文件访问函数