mirror of
https://github.com/postgres/postgres.git
synced 2025-11-09 06:21:09 +03:00
Standardize LSN formatting by zero padding
This commit standardizes the output format for LSNs to ensure consistent representation across various tools and messages. Previously, LSNs were inconsistently printed as `%X/%X` in some contexts, while others used zero-padding. This often led to confusion when comparing. To address this, the LSN format is now uniformly set to `%X/%08X`, ensuring the lower 32-bit part is always zero-padded to eight hexadecimal digits. Author: Japin Li <japinli@hotmail.com> Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com> Reviewed-by: Álvaro Herrera <alvherre@kurilemu.de> Discussion: https://postgr.es/m/ME0P300MB0445CA53CA0E4B8C1879AF84B641A@ME0P300MB0445.AUSP300.PROD.OUTLOOK.COM
This commit is contained in:
@@ -1429,12 +1429,12 @@ XlogReadTwoPhaseData(XLogRecPtr lsn, char **buf, int *len)
|
||||
if (errormsg)
|
||||
ereport(ERROR,
|
||||
(errcode_for_file_access(),
|
||||
errmsg("could not read two-phase state from WAL at %X/%X: %s",
|
||||
errmsg("could not read two-phase state from WAL at %X/%08X: %s",
|
||||
LSN_FORMAT_ARGS(lsn), errormsg)));
|
||||
else
|
||||
ereport(ERROR,
|
||||
(errcode_for_file_access(),
|
||||
errmsg("could not read two-phase state from WAL at %X/%X",
|
||||
errmsg("could not read two-phase state from WAL at %X/%08X",
|
||||
LSN_FORMAT_ARGS(lsn))));
|
||||
}
|
||||
|
||||
@@ -1442,7 +1442,7 @@ XlogReadTwoPhaseData(XLogRecPtr lsn, char **buf, int *len)
|
||||
(XLogRecGetInfo(xlogreader) & XLOG_XACT_OPMASK) != XLOG_XACT_PREPARE)
|
||||
ereport(ERROR,
|
||||
(errcode_for_file_access(),
|
||||
errmsg("expected two-phase state data is not present in WAL at %X/%X",
|
||||
errmsg("expected two-phase state data is not present in WAL at %X/%08X",
|
||||
LSN_FORMAT_ARGS(lsn))));
|
||||
|
||||
if (len != NULL)
|
||||
@@ -2533,7 +2533,7 @@ PrepareRedoAdd(FullTransactionId fxid, char *buf,
|
||||
ereport(reachedConsistency ? ERROR : WARNING,
|
||||
(errmsg("could not recover two-phase state file for transaction %u",
|
||||
hdr->xid),
|
||||
errdetail("Two-phase state file has been found in WAL record %X/%X, but this transaction has already been restored from disk.",
|
||||
errdetail("Two-phase state file has been found in WAL record %X/%08X, but this transaction has already been restored from disk.",
|
||||
LSN_FORMAT_ARGS(start_lsn))));
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user