pg_tablespace_location()
是一个系统函数,返回指定表空间的文件系统路径。
pg_tablespace_location()
添加于PostgreSQL 9.2。
用法
pg_tablespace_databases (tablespace
oid
) → setofoid
pg_tablespace_location()
的引入是为了避免在pg_tablespace
系统目录表中硬编码系统路径,主要用于需要将表空间的OID转换为其文件路径的元数据查询,例如 psql 的 \db
斜杠命令。
pg_tablespace_location()
必须提供要查询的表空间的OID(注意,目前还没有regtablespace
OID 类型),并返回系统文件路径,如果表空间是默认表空间,则返回NULL
。
变更历史
- PostgreSQL 9.2
- 添加(提交 16d8e594)
示例
psql 的 \db
命令使用的查询
postgres=# \db ********* QUERY ********** SELECT spcname AS "Name", pg_catalog.pg_get_userbyid(spcowner) AS "Owner", pg_catalog.pg_tablespace_location(oid) AS "Location" FROM pg_catalog.pg_tablespace ORDER BY 1; ************************** List of tablespaces Name | Owner | Location ------------+----------+---------------------------- pg_default | postgres | pg_global | postgres | tblspace_1 | postgres | /var/lib/pgsql/tblspc_dir1 tblspace_2 | postgres | /var/lib/pgsql/tblspc_dir2 (4 rows)
参考文献
- PostgreSQL 文档: 系统目录信息函数