teledb=# SELECT pg_xact_commit_timestamp(xmin) as xmin_time, pg_xact_commit_timestamp(case xmax when 0 then null else xmax end) as xmax_time,*
FROM pg_dirtyread('foo') AS t(tableoid oid, ctid tid, xmin xid, xmax xid, cmin cid, cmax cid, dead boolean,bar bigint, baz text);
xmin_time | xmax_time | tableoid | ctid | xmin | xmax | cmin | cmax | dead | bar | baz
-------------------------------+-------------------------------+----------+-------+------+------+------+------+------+-----+----------
2023-11-02 16:42:15.694944+08 | 2023-11-02 16:42:22.213469+08 | 16432 | (0,1) | 677 | 678 | 0 | 0 | t | 1 | aaa
2023-11-02 16:42:15.694944+08 | 2023-11-02 16:42:28.684133+08 | 16432 | (0,2) | 677 | 679 | 0 | 0 | t | 2 | bbb
2023-11-02 16:42:47.230036+08 | | 16432 | (0,3) | 680 | 0 | 0 | 0 | f | 5 | eee
2023-11-02 16:42:54.18001+08 | 2023-11-02 16:43:00.369209+08 | 16432 | (0,4) | 681 | 682 | 0 | 0 | f | 6 | fff
2023-11-02 16:42:15.694944+08 | 2023-11-02 16:42:34.764626+08 | 16432 | (0,1) | 657 | 658 | 0 | 0 | t | 3 | ccc
2023-11-02 16:42:34.764626+08 | 2023-11-02 16:42:41.46109+08 | 16432 | (0,2) | 658 | 659 | 0 | 0 | f | 3 | ccc_new
2023-11-02 16:42:41.46109+08 | | 16432 | (0,3) | 659 | 0 | 0 | 0 | f | 3 | ccc_new2
(7 rows)