mirror of
https://github.com/postgres/postgres.git
synced 2025-07-08 11:42:09 +03:00
Simplify printing of LSNs
Add a macro LSN_FORMAT_ARGS for use in printf-style printing of LSNs. Convert all applicable code to use it. Reviewed-by: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com> Reviewed-by: Kyotaro Horiguchi <horikyota.ntt@gmail.com> Reviewed-by: Michael Paquier <michael@paquier.xyz> Discussion: https://www.postgresql.org/message-id/flat/CAExHW5ub5NaTELZ3hJUCE6amuvqAtsSxc7O+uK7y4t9Rrk23cw@mail.gmail.com
This commit is contained in:
@ -347,7 +347,7 @@ XLogReadRecord(XLogReaderState *state, char **errormsg)
|
||||
else if (targetRecOff < pageHeaderSize)
|
||||
{
|
||||
report_invalid_record(state, "invalid record offset at %X/%X",
|
||||
(uint32) (RecPtr >> 32), (uint32) RecPtr);
|
||||
LSN_FORMAT_ARGS(RecPtr));
|
||||
goto err;
|
||||
}
|
||||
|
||||
@ -355,7 +355,7 @@ XLogReadRecord(XLogReaderState *state, char **errormsg)
|
||||
targetRecOff == pageHeaderSize)
|
||||
{
|
||||
report_invalid_record(state, "contrecord is requested by %X/%X",
|
||||
(uint32) (RecPtr >> 32), (uint32) RecPtr);
|
||||
LSN_FORMAT_ARGS(RecPtr));
|
||||
goto err;
|
||||
}
|
||||
|
||||
@ -396,7 +396,7 @@ XLogReadRecord(XLogReaderState *state, char **errormsg)
|
||||
{
|
||||
report_invalid_record(state,
|
||||
"invalid record length at %X/%X: wanted %u, got %u",
|
||||
(uint32) (RecPtr >> 32), (uint32) RecPtr,
|
||||
LSN_FORMAT_ARGS(RecPtr),
|
||||
(uint32) SizeOfXLogRecord, total_len);
|
||||
goto err;
|
||||
}
|
||||
@ -420,8 +420,7 @@ XLogReadRecord(XLogReaderState *state, char **errormsg)
|
||||
{
|
||||
/* We treat this as a "bogus data" condition */
|
||||
report_invalid_record(state, "record length %u at %X/%X too long",
|
||||
total_len,
|
||||
(uint32) (RecPtr >> 32), (uint32) RecPtr);
|
||||
total_len, LSN_FORMAT_ARGS(RecPtr));
|
||||
goto err;
|
||||
}
|
||||
|
||||
@ -452,7 +451,7 @@ XLogReadRecord(XLogReaderState *state, char **errormsg)
|
||||
{
|
||||
report_invalid_record(state,
|
||||
"there is no contrecord flag at %X/%X",
|
||||
(uint32) (RecPtr >> 32), (uint32) RecPtr);
|
||||
LSN_FORMAT_ARGS(RecPtr));
|
||||
goto err;
|
||||
}
|
||||
|
||||
@ -467,7 +466,7 @@ XLogReadRecord(XLogReaderState *state, char **errormsg)
|
||||
"invalid contrecord length %u (expected %lld) at %X/%X",
|
||||
pageHeader->xlp_rem_len,
|
||||
((long long) total_len) - gotlen,
|
||||
(uint32) (RecPtr >> 32), (uint32) RecPtr);
|
||||
LSN_FORMAT_ARGS(RecPtr));
|
||||
goto err;
|
||||
}
|
||||
|
||||
@ -694,7 +693,7 @@ ValidXLogRecordHeader(XLogReaderState *state, XLogRecPtr RecPtr,
|
||||
{
|
||||
report_invalid_record(state,
|
||||
"invalid record length at %X/%X: wanted %u, got %u",
|
||||
(uint32) (RecPtr >> 32), (uint32) RecPtr,
|
||||
LSN_FORMAT_ARGS(RecPtr),
|
||||
(uint32) SizeOfXLogRecord, record->xl_tot_len);
|
||||
return false;
|
||||
}
|
||||
@ -702,8 +701,7 @@ ValidXLogRecordHeader(XLogReaderState *state, XLogRecPtr RecPtr,
|
||||
{
|
||||
report_invalid_record(state,
|
||||
"invalid resource manager ID %u at %X/%X",
|
||||
record->xl_rmid, (uint32) (RecPtr >> 32),
|
||||
(uint32) RecPtr);
|
||||
record->xl_rmid, LSN_FORMAT_ARGS(RecPtr));
|
||||
return false;
|
||||
}
|
||||
if (randAccess)
|
||||
@ -716,9 +714,8 @@ ValidXLogRecordHeader(XLogReaderState *state, XLogRecPtr RecPtr,
|
||||
{
|
||||
report_invalid_record(state,
|
||||
"record with incorrect prev-link %X/%X at %X/%X",
|
||||
(uint32) (record->xl_prev >> 32),
|
||||
(uint32) record->xl_prev,
|
||||
(uint32) (RecPtr >> 32), (uint32) RecPtr);
|
||||
LSN_FORMAT_ARGS(record->xl_prev),
|
||||
LSN_FORMAT_ARGS(RecPtr));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -733,9 +730,8 @@ ValidXLogRecordHeader(XLogReaderState *state, XLogRecPtr RecPtr,
|
||||
{
|
||||
report_invalid_record(state,
|
||||
"record with incorrect prev-link %X/%X at %X/%X",
|
||||
(uint32) (record->xl_prev >> 32),
|
||||
(uint32) record->xl_prev,
|
||||
(uint32) (RecPtr >> 32), (uint32) RecPtr);
|
||||
LSN_FORMAT_ARGS(record->xl_prev),
|
||||
LSN_FORMAT_ARGS(RecPtr));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -770,7 +766,7 @@ ValidXLogRecord(XLogReaderState *state, XLogRecord *record, XLogRecPtr recptr)
|
||||
{
|
||||
report_invalid_record(state,
|
||||
"incorrect resource manager data checksum in record at %X/%X",
|
||||
(uint32) (recptr >> 32), (uint32) recptr);
|
||||
LSN_FORMAT_ARGS(recptr));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -881,7 +877,7 @@ XLogReaderValidatePageHeader(XLogReaderState *state, XLogRecPtr recptr,
|
||||
|
||||
report_invalid_record(state,
|
||||
"unexpected pageaddr %X/%X in log segment %s, offset %u",
|
||||
(uint32) (hdr->xlp_pageaddr >> 32), (uint32) hdr->xlp_pageaddr,
|
||||
LSN_FORMAT_ARGS(hdr->xlp_pageaddr),
|
||||
fname,
|
||||
offset);
|
||||
return false;
|
||||
@ -1252,8 +1248,7 @@ DecodeXLogRecord(XLogReaderState *state, XLogRecord *record, char **errormsg)
|
||||
report_invalid_record(state,
|
||||
"out-of-order block_id %u at %X/%X",
|
||||
block_id,
|
||||
(uint32) (state->ReadRecPtr >> 32),
|
||||
(uint32) state->ReadRecPtr);
|
||||
LSN_FORMAT_ARGS(state->ReadRecPtr));
|
||||
goto err;
|
||||
}
|
||||
state->max_block_id = block_id;
|
||||
@ -1274,7 +1269,7 @@ DecodeXLogRecord(XLogReaderState *state, XLogRecord *record, char **errormsg)
|
||||
{
|
||||
report_invalid_record(state,
|
||||
"BKPBLOCK_HAS_DATA set, but no data included at %X/%X",
|
||||
(uint32) (state->ReadRecPtr >> 32), (uint32) state->ReadRecPtr);
|
||||
LSN_FORMAT_ARGS(state->ReadRecPtr));
|
||||
goto err;
|
||||
}
|
||||
if (!blk->has_data && blk->data_len != 0)
|
||||
@ -1282,7 +1277,7 @@ DecodeXLogRecord(XLogReaderState *state, XLogRecord *record, char **errormsg)
|
||||
report_invalid_record(state,
|
||||
"BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X",
|
||||
(unsigned int) blk->data_len,
|
||||
(uint32) (state->ReadRecPtr >> 32), (uint32) state->ReadRecPtr);
|
||||
LSN_FORMAT_ARGS(state->ReadRecPtr));
|
||||
goto err;
|
||||
}
|
||||
datatotal += blk->data_len;
|
||||
@ -1320,7 +1315,7 @@ DecodeXLogRecord(XLogReaderState *state, XLogRecord *record, char **errormsg)
|
||||
(unsigned int) blk->hole_offset,
|
||||
(unsigned int) blk->hole_length,
|
||||
(unsigned int) blk->bimg_len,
|
||||
(uint32) (state->ReadRecPtr >> 32), (uint32) state->ReadRecPtr);
|
||||
LSN_FORMAT_ARGS(state->ReadRecPtr));
|
||||
goto err;
|
||||
}
|
||||
|
||||
@ -1335,7 +1330,7 @@ DecodeXLogRecord(XLogReaderState *state, XLogRecord *record, char **errormsg)
|
||||
"BKPIMAGE_HAS_HOLE not set, but hole offset %u length %u at %X/%X",
|
||||
(unsigned int) blk->hole_offset,
|
||||
(unsigned int) blk->hole_length,
|
||||
(uint32) (state->ReadRecPtr >> 32), (uint32) state->ReadRecPtr);
|
||||
LSN_FORMAT_ARGS(state->ReadRecPtr));
|
||||
goto err;
|
||||
}
|
||||
|
||||
@ -1349,7 +1344,7 @@ DecodeXLogRecord(XLogReaderState *state, XLogRecord *record, char **errormsg)
|
||||
report_invalid_record(state,
|
||||
"BKPIMAGE_IS_COMPRESSED set, but block image length %u at %X/%X",
|
||||
(unsigned int) blk->bimg_len,
|
||||
(uint32) (state->ReadRecPtr >> 32), (uint32) state->ReadRecPtr);
|
||||
LSN_FORMAT_ARGS(state->ReadRecPtr));
|
||||
goto err;
|
||||
}
|
||||
|
||||
@ -1364,7 +1359,7 @@ DecodeXLogRecord(XLogReaderState *state, XLogRecord *record, char **errormsg)
|
||||
report_invalid_record(state,
|
||||
"neither BKPIMAGE_HAS_HOLE nor BKPIMAGE_IS_COMPRESSED set, but block image length is %u at %X/%X",
|
||||
(unsigned int) blk->data_len,
|
||||
(uint32) (state->ReadRecPtr >> 32), (uint32) state->ReadRecPtr);
|
||||
LSN_FORMAT_ARGS(state->ReadRecPtr));
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
@ -1379,7 +1374,7 @@ DecodeXLogRecord(XLogReaderState *state, XLogRecord *record, char **errormsg)
|
||||
{
|
||||
report_invalid_record(state,
|
||||
"BKPBLOCK_SAME_REL set but no previous rel at %X/%X",
|
||||
(uint32) (state->ReadRecPtr >> 32), (uint32) state->ReadRecPtr);
|
||||
LSN_FORMAT_ARGS(state->ReadRecPtr));
|
||||
goto err;
|
||||
}
|
||||
|
||||
@ -1391,9 +1386,7 @@ DecodeXLogRecord(XLogReaderState *state, XLogRecord *record, char **errormsg)
|
||||
{
|
||||
report_invalid_record(state,
|
||||
"invalid block_id %u at %X/%X",
|
||||
block_id,
|
||||
(uint32) (state->ReadRecPtr >> 32),
|
||||
(uint32) state->ReadRecPtr);
|
||||
block_id, LSN_FORMAT_ARGS(state->ReadRecPtr));
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
@ -1480,7 +1473,7 @@ DecodeXLogRecord(XLogReaderState *state, XLogRecord *record, char **errormsg)
|
||||
shortdata_err:
|
||||
report_invalid_record(state,
|
||||
"record with invalid length at %X/%X",
|
||||
(uint32) (state->ReadRecPtr >> 32), (uint32) state->ReadRecPtr);
|
||||
LSN_FORMAT_ARGS(state->ReadRecPtr));
|
||||
err:
|
||||
*errormsg = state->errormsg_buf;
|
||||
|
||||
@ -1569,8 +1562,7 @@ RestoreBlockImage(XLogReaderState *record, uint8 block_id, char *page)
|
||||
BLCKSZ - bkpb->hole_length, true) < 0)
|
||||
{
|
||||
report_invalid_record(record, "invalid compressed image at %X/%X, block %d",
|
||||
(uint32) (record->ReadRecPtr >> 32),
|
||||
(uint32) record->ReadRecPtr,
|
||||
LSN_FORMAT_ARGS(record->ReadRecPtr),
|
||||
block_id);
|
||||
return false;
|
||||
}
|
||||
|
Reference in New Issue
Block a user