Include replication origins in SQL functions for commit timestamp
authorMichael Paquier <michael@paquier.xyz>
Sun, 12 Jul 2020 11:47:15 +0000 (20:47 +0900)
committerMichael Paquier <michael@paquier.xyz>
Sun, 12 Jul 2020 11:47:15 +0000 (20:47 +0900)
commitb1e48bbe64a411666bb1928b9741e112e267836d
tree6c3528afdd848d9614b8f4b64fd9a9a1921c9c1f
parentcd22d3cdb9bd9963c694c01a8c0232bbae3ddcfb
Include replication origins in SQL functions for commit timestamp

This includes two changes:
- Addition of a new function pg_xact_commit_timestamp_origin() able, for
a given transaction ID, to return the commit timestamp and replication
origin of this transaction.  An equivalent function existed in
pglogical.
- Addition of the replication origin to pg_last_committed_xact().

The commit timestamp manager includes already APIs able to return the
replication origin of a transaction on top of its commit timestamp, but
the code paths for replication origins were never stressed as those
functions have never looked for a replication origin, and the SQL
functions available have never included this information since their
introduction in 73c986a.

While on it, refactor a test of modules/commit_ts/ to use tstzrange() to
check that a transaction timestamp is within the wanted range, making
the test a bit easier to read.

Bump catalog version.

Author: Movead Li
Reviewed-by: Madan Kumar, Michael Paquier
Discussion: https://postgr.es/m/2020051116430836450630@highgo.ca
doc/src/sgml/func.sgml
src/backend/access/transam/commit_ts.c
src/include/catalog/catversion.h
src/include/catalog/pg_proc.dat
src/test/modules/commit_ts/expected/commit_timestamp.out
src/test/modules/commit_ts/expected/commit_timestamp_1.out
src/test/modules/commit_ts/sql/commit_timestamp.sql