Re: pg_walfile_name_offset can return inconsistent values

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: pg_walfile_name_offset can return inconsistent values
Дата
Msg-id 20231111035943.nv4sejydoga44jd2@alap3.anarazel.de
обсуждение исходный текст
Ответ на Re: pg_walfile_name_offset can return inconsistent values  (Bruce Momjian <bruce@momjian.us>)
Ответы Re: pg_walfile_name_offset can return inconsistent values  (Michael Paquier <michael@paquier.xyz>)
Re: pg_walfile_name_offset can return inconsistent values  (Bruce Momjian <bruce@momjian.us>)
Список pgsql-hackers
Hi,

On 2023-11-09 16:14:07 -0500, Bruce Momjian wrote:
> On Thu, Nov  9, 2023 at 09:49:48PM +0100, Matthias van de Meent wrote:
> > Either way, I think fix #1 is most correct (as was attached in
> > offset2.diff, and quoted verbatim here), because that has no chance of
> > having surprising underflowing behaviour when you use '0/0'::lsn as
> > input.
> 
> Attached is the full patch that changes pg_walfile_name_offset() and
> pg_walfile_name().  There is no need for doc changes.

I think this needs to add tests "documenting" the changed behaviour and
perhaps also for a few other edge cases.  You could e.g. test
  SELECT * FROM pg_walfile_name_offset('0/0')
which today returns bogus values, and which is independent of the wal segment
size.

And with
SELECT setting::int8 AS segment_size FROM pg_settings WHERE name = 'wal_segment_size' \gset
you can test real things too, e.g.:
SELECT segment_number, file_offset FROM pg_walfile_name_offset('0/0'::pg_lsn + :segment_size),
pg_split_walfile_name(file_name);
SELECT segment_number, file_offset FROM pg_walfile_name_offset('0/0'::pg_lsn + :segment_size + 1),
pg_split_walfile_name(file_name);
SELECT segment_number, file_offset = :segment_size - 1 FROM pg_walfile_name_offset('0/0'::pg_lsn + :segment_size - 1),
pg_split_walfile_name(file_name);

Greetings,

Andres Freund



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Amit Langote
Дата:
Сообщение: Re: remaining sql/json patches
Следующее
От: Julien Rouhaud
Дата:
Сообщение: Fix documentation for pg_stat_statements JIT deform_counter