Alvaro Herrera <alvherre@commandprompt.com> writes:
> Heikki Linnakangas wrote:
>> - at the end of WAL segment, when there's not enough space to write the
>> next WAL record, always write an XLOG SWITCH record to fill the rest of
>> the segment.
> What happens if a record is larger than a WAL segment? For example,
> what if I insert a 16 MB+ datum into a varlena field?
That case doesn't pose a problem --- the datum would be toasted into
individual tuples that are certainly no larger than a page. However
we do have cases where a WAL record can get arbitrarily large; in
particular a commit record with many subtransactions and/or many
disk files to delete. These cases do get exercised in the field
too --- I can recall at least one related bug report.
regards, tom lane