pg_tablespace_location() 是一个系统函数,用于返回指定 表空间 的文件系统路径。
pg_tablespace_location() 在 PostgreSQL 9.2 中被添加。
用法
pg_tablespace_databases (tablespaceoid) → 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 文档: 系统目录信息函数
