pg_xact_commit_timestamp_origin()

返回事务时间戳和复制源的函数

pg_xact_commit_timestamp_origin() 是一个系统函数,返回事务的提交时间戳和复制源。

pg_xact_commit_timestamp_origin()PostgreSQL 14 中添加。

用法

pg_xact_commit_timestamp_origin ( xid ) 
        → record ( timestamp timestamp with time zone, roident oid)

如果事务记录未与复制源关联,则 roident 返回 0

更改历史记录

示例

以下为 pg_xact_commit_timestamp_origin() 的基本用法示例,此处在订阅节点上执行,显示最初在发布节点上插入的节点

postgres=# SELECT foo.xmin, origin.roident, foo.id, foo.node
             FROM foo,
                  LATERAL pg_xact_commit_timestamp_origin(foo.xmin) origin;
 xmin | roident | id |      node      
------+---------+----+----------------
  740 |       1 |  1 | logical[node1]
  740 |       1 |  2 | logical[node1]
  740 |       1 |  3 | logical[node1]
  740 |       1 |  4 | logical[node1]
  740 |       1 |  5 | logical[node1]
(5 rows)

在订阅节点上插入的其他行具有 roident0,因为它们不是源自其他节点。

postgres=# INSERT INTO foo
               VALUES (pg_catalog.generate_series(6, 10),
                       pg_catalog.current_setting('cluster_name'),
                       pg_catalog.clock_timestamp()
                      );
INSERT 0 5

postgres=# SELECT foo.xmin, origin.roident, foo.id, foo.node
             FROM foo,
                  LATERAL pg_xact_commit_timestamp_origin(foo.xmin) origin;
 xmin | roident | id |      node      
------+---------+----+----------------
  740 |       1 |  1 | logical[node1]
  740 |       1 |  2 | logical[node1]
  740 |       1 |  3 | logical[node1]
  740 |       1 |  4 | logical[node1]
  740 |       1 |  5 | logical[node1]
  741 |       0 |  6 | logical[node2]
  741 |       0 |  7 | logical[node2]
  741 |       0 |  8 | logical[node2]
  741 |       0 |  9 | logical[node2]
  741 |       0 | 10 | logical[node2]
(10 rows)

分类

逻辑复制系统函数

另请参阅

pg_xact_commit_timestamp()

反馈

提交任何关于 "pg_xact_commit_timestamp_origin()" 的评论、建议或更正 此处