Fix off-by-one in XLogRecordMaxSize check.
pg_logical_emit_message(false, '_', repeat('x', 1069547465)) failed with self-contradictory message "WAL record would be 1069547520 bytes (of maximum 1069547520 bytes)". There's no particular benefit from allowing or denying one byte in either direction; XLogRecordMaxSize could rise a few megabytes without trouble. Hence, this is just for cleanliness. Back-patch to v16, where this check first appeared.
This commit is contained in:
parent
638d42a3c5
commit
c36b636096
1 changed files with 1 additions and 1 deletions
|
@ -900,7 +900,7 @@ XLogRecordAssemble(RmgrId rmid, uint8 info,
|
|||
* not emit records larger than the sizes advertised to be supported. This
|
||||
* cap is based on DecodeXLogRecordRequiredSpace().
|
||||
*/
|
||||
if (total_len >= XLogRecordMaxSize)
|
||||
if (total_len > XLogRecordMaxSize)
|
||||
ereport(ERROR,
|
||||
(errmsg_internal("oversized WAL record"),
|
||||
errdetail_internal("WAL record would be %llu bytes (of maximum %u bytes); rmid %u flags %u.",
|
||||
|
|
Loading…
Reference in a new issue