aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAmit Kapila <akapila@postgresql.org>2021-09-07 08:07:11 +0530
committerAmit Kapila <akapila@postgresql.org>2021-09-07 08:07:11 +0530
commit4c3478859b7359912d7e99fea702c56b1f53000c (patch)
tree50f6906f3c4d30b5addf40e68aa12471ccdf31fb /src
parentbd5846e4a9c1338ded5efcef53511f0d71f53f0e (diff)
downloadpostgresql-4c3478859b7359912d7e99fea702c56b1f53000c.tar.gz
postgresql-4c3478859b7359912d7e99fea702c56b1f53000c.zip
Log new catalog xmin candidate in LogicalIncreaseXminForSlot().
Similar to LogicalIncreaseRestartDecodingForSlot() add a debug message to LogicalIncreaseXminForSlot() reporting a new catalog_xmin candidate. This just adds additional diagnostic information during logical decoding that can aid debugging. Author: Ashutosh Bapat Reviewed-by: Masahiko Sawada, Amit Kapila Discussion: https://postgr.es/m/CAExHW5usQWbiUz0hHOCu5twS1O9DvpcPojf6sor=8q--VUuMbA@mail.gmail.com
Diffstat (limited to 'src')
-rw-r--r--src/backend/replication/logical/logical.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/backend/replication/logical/logical.c b/src/backend/replication/logical/logical.c
index 64b8280c135..aae0ae5b8aa 100644
--- a/src/backend/replication/logical/logical.c
+++ b/src/backend/replication/logical/logical.c
@@ -1565,6 +1565,7 @@ LogicalIncreaseXminForSlot(XLogRecPtr current_lsn, TransactionId xmin)
{
bool updated_xmin = false;
ReplicationSlot *slot;
+ bool got_new_xmin = false;
slot = MyReplicationSlot;
@@ -1602,9 +1603,19 @@ LogicalIncreaseXminForSlot(XLogRecPtr current_lsn, TransactionId xmin)
{
slot->candidate_catalog_xmin = xmin;
slot->candidate_xmin_lsn = current_lsn;
+
+ /*
+ * Log new xmin at an appropriate log level after releasing the
+ * spinlock.
+ */
+ got_new_xmin = true;
}
SpinLockRelease(&slot->mutex);
+ if (got_new_xmin)
+ elog(DEBUG1, "got new catalog xmin %u at %X/%X", xmin,
+ LSN_FORMAT_ARGS(current_lsn));
+
/* candidate already valid with the current flush position, apply */
if (updated_xmin)
LogicalConfirmReceivedLocation(slot->data.confirmed_flush);