关于regclass
regclass是一种数据类型,它实际上是oid的别名。相当于是oid和对象名之间的双向符号,既可以把oid翻译成表名,也可以把表名翻译成oid。
通过使用::regclass, 我们就不需要通过查询pg_class表来获取对象与oid的对应关系了。
在pg 逻辑复制中,订阅端如果需要看到订阅了哪些表,就可以借助regclass类型来帮助阅读。
postgres=# select *,srsubid::regclass,srrelid::regclass from pg_subscription_rel;
srsubid | srrelid | srsubstate | srsublsn | srsubid | srrelid
---------+---------+------------+-----------+---------+-----------
16392 | 16384 | r | 0/202B678 | 16392 | test
16392 | 16393 | r | 0/2FD53C0 | 16392 | test_big2
(2 rows)
翻译一下
postgres=# select *,srrelid::regclass as rep_table from pg_subscription_rel;
srsubid | srrelid | srsubstate | srsublsn | rep_table
---------+---------+------------+-----------+-----------
16392 | 16384 | r | 0/202B678 | test
16392 | 16393 | r | 0/2FD53C0 | test_big2
(2 rows)
3971

被折叠的 条评论
为什么被折叠?



