On Mon, Dec 19, 2022 at 5:22 PM Bharath Rupireddy <bharath.rupireddyforpostg...@gmail.com> wrote: > > On Mon, Dec 19, 2022 at 1:37 PM Michael Paquier <mich...@paquier.xyz> wrote: > > > > On Tue, Dec 13, 2022 at 09:32:19PM +0530, Bharath Rupireddy wrote: > > > Okay, here's the v5 patch that I could come up with. It basically adds > > > functions for dissecting WAL file names and computing offset from lsn. > > > Thoughts? > > > > I had a second look at that, and I still have mixed feelings about the > > addition of the SQL function, no real objection about > > pg_dissect_walfile_name(). > > > > I don't really think that we need a specific handling with a new > > macro from xlog_internal.h that does its own parsing of the segment > > number while XLogFromFileName() can do that based on the user input, > > so I have simplified that. > > > > A second thing is the TLI that had better be returned as int8 and not > > int4 so as we don't have a negative number for a TLI higher than 2B in > > a WAL segment name. > > Thanks. The v6 patch LGTM.
A nitpick - can we also specify a use case for the function pg_dissect_walfile_name(), that is, computing LSN from offset and WAL file name, something like [1]? [1] diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml index 2f05b06f14..c36fcb83c8 100644 --- a/doc/src/sgml/func.sgml +++ b/doc/src/sgml/func.sgml @@ -26110,7 +26110,17 @@ LOG: Grand total: 1651920 bytes in 201 blocks; 622360 free (88 chunks); 1029560 </para> <para> Extract the file sequence number and timeline ID from a WAL file - name. + name. This function is useful to compute LSN from a given offset + and WAL file name, for example: +<screen> +postgres=# \set file_name '000000010000000100C000AB' +postgres=# \set offset 256 +postgres=# SELECT '0/0'::pg_lsn + pd.segno * ps.setting::int + :offset AS lsn FROM pg_dissect_walfile_name(:'file_name') pd, pg_show_all_settings() ps WHERE ps.name = 'wal_segment_size'; + lsn +--------------- + C001/AB000100 +(1 row) +</screen> </para></entry> </row> -- Bharath Rupireddy PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com