public inbox for [email protected]  
help / color / mirror / Atom feed
From: Kyotaro Horiguchi <[email protected]>
To: [email protected]
Subject: pg_walfile_name_offset can return inconsistent values
Date: Fri, 26 Jul 2019 17:21:20 +0900 (Tokyo Standard Time)
Message-ID: <[email protected]> (raw)

Hello.

While looking [1], I noticed that pg_walfile_name_offset behaves
somewhat oddly at segment boundary.

select * from (values ('0/16ffffff'), ('0/17000000'), ('0/17000001')) as t(lsn), lateral pg_walfile_name_offset(lsn::pg_lsn);
    lsn     |        file_name         | file_offset 
------------+--------------------------+-------------
 0/16ffffff | 000000020000000000000016 |    16777215
 0/17000000 | 000000020000000000000016 |           0
 0/17000001 | 000000020000000000000017 |           1


The file names are right as defined, but the return value of the
second line wrong, or at least misleading. It should be (16,
1000000) or (16, FFFFFF). The former is out-of-domain so we would
have no way than choosing the latter. I'm not sure the purpose of
the second output parameter, thus the former might be right
decision.


The function returns the following result after this patch is
applied.

select * from (values ('0/16ffffff'), ('0/17000000'), ('0/17000001')) as t(lsn), lateral pg_walfile_name_offset(lsn::pg_lsn);
    lsn     |        file_name         | file_offset 
------------+--------------------------+-------------
 0/16ffffff | 000000020000000000000016 |    16777214
 0/17000000 | 000000020000000000000016 |    16777215
 0/17000001 | 000000020000000000000017 |           0


regards.

[1]: https://www.postgresql.org/message-id/20190725193808.1648ddc8@firost

-- 
Kyotaro Horiguchi
NTT Open Source Software Center


view thread (3+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected]
  Subject: Re: pg_walfile_name_offset can return inconsistent values
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox