Re: XLogBeginRead's header comment lies - Mailing list pgsql-hackers

From Dilip Kumar
Subject Re: XLogBeginRead's header comment lies
Date
Msg-id CAFiTN-vK10wesMwZgbcGOgGOEeTQ-XzQ45BuAUxwa0ErxmsceQ@mail.gmail.com
Whole thread Raw
In response to Re: XLogBeginRead's header comment lies  (Dilip Kumar <dilipbalaut@gmail.com>)
Responses Re: XLogBeginRead's header comment lies
List pgsql-hackers
On Wed, Aug 17, 2022 at 11:31 AM Dilip Kumar <dilipbalaut@gmail.com> wrote:
>
> On Wed, Aug 17, 2022 at 11:18 AM Dilip Kumar <dilipbalaut@gmail.com> wrote:
> >
> > On Tue, Aug 16, 2022 at 11:28 PM Robert Haas <robertmhaas@gmail.com> wrote:
> > >
> >
> > Yeah I think it makes sense to make it work as per the comment in
> > XLogBeginRecord().  I think if we modify the Assert as per the comment
> > of XLogBeginRecord() then the remaining code of the
> > XLogDecodeNextRecord() is capable enough to take care of skipping the
> > page header if we are pointing at the beginning of the block.
> >
> > See attached patch.
> >
>
> I think that is not sufficient, if there is a record continuing from
> the previous page and we are pointing to the start of the page then
> this assertion is not sufficient.  I think if the
> targetRecOff is zero then we should additionally read the header and
> verify that XLP_FIRST_IS_CONTRECORD is not set.

Thinking again, there is already a code in XLogDecodeNextRecord() to
error out if XLP_FIRST_IS_CONTRECORD is set so probably we don't need
to do anything else and the previous patch with modified assert should
just work fine?

-- 
Regards,
Dilip Kumar
EnterpriseDB: http://www.enterprisedb.com



pgsql-hackers by date:

Previous
From: Aleksander Alekseev
Date:
Subject: Proposal: CREATE/ALTER DOMAIN ... STORAGE/COMPRESSION = ...
Next
From: Bruce Momjian
Date:
Subject: Re: Regarding availability of 32bit client drivers for postgresql 13/14