pg_partition_ancestors() 是一个系统函数,用于列出给定关系的分区祖先。
pg_partition_ancestors() 在 PostgreSQL 12 中添加。
用法
pg_partition_ancestors (regclass) → setofregclass
关系按反向层级顺序排列,从给定的关系开始。
如果指定的关系不是分区表或索引,则不返回任何行。
变更历史
- PostgreSQL 12
- 添加(提交 b96f6b19)
示例
假设在 pg_partition_tree() 示例 中定义的分区表,pg_partition_ancestor() 返回以下输出
postgres=# SELECT pg_partition_ancestors('partition_test_6_10');
pg_partition_ancestors
------------------------
partition_test_6_10
partition_test_1_10
partition_test
(3 rows)
在不属于分区层级结构的关系上执行
postgres=# SELECT pg_partition_ancestors('pg_class');
pg_partition_ancestors
------------------------
(0 rows)
使用不存在的关系名称执行 pg_partition_ancestors()
postgres=# SELECT pg_partition_ancestors('foo');
ERROR: relation "foo" does not exist
LINE 1: SELECT pg_partition_ancestors('foo');
参考资料
- PostgreSQL 文档: 分区信息函数
