pg_visible_in_snapshot() 是一个系统函数,用于确定一个事务ID是否在快照中可见。
pg_visible_in_snapshot() 添加于 PostgreSQL 13。
用法
pg_visible_in_snapshot (xid8,pg_snapshot) →boolean
pg_visible_in_snapshot() 如果指定的事务在快照拍摄之前已完成,则返回 true,否则返回 false。
指定的事务不得为子事务。
pg_visible_in_snapshot() 替换了 txid_visible_in_snapshot()。
变更历史
- PostgreSQL 13
- added (commit 4c04be9b)
示例
pg_visible_in_snapshot() 的使用示例
postgres=# SELECT pg_current_snapshot(); pg_current_snapshot --------------------- 795:799:795,797 (1 row) postgres=# SELECT pg_visible_in_snapshot('794'::xid8, '795:799:795,797'); pg_visible_in_snapshot ------------------------ t (1 row) postgres=# SELECT pg_visible_in_snapshot('796'::xid8, '795:799:795,797'); pg_visible_in_snapshot ------------------------ t (1 row) postgres=# SELECT pg_visible_in_snapshot('797'::xid8, '795:799:795,797'); pg_visible_in_snapshot ------------------------ f (1 row) postgres=# SELECT pg_visible_in_snapshot('798'::xid8, '795:799:795,797'); pg_visible_in_snapshot ------------------------ t (1 row) postgres=# SELECT pg_visible_in_snapshot('799'::xid8, '795:799:795,797'); pg_visible_in_snapshot ------------------------ f (1 row)
参考资料
- PostgreSQL documentation: 事务 ID 和快照信息函数
