Re: Add LSN along with offset to error messages reported for WAL file read/write/validate header failures
От | Bharath Rupireddy |
---|---|
Тема | Re: Add LSN along with offset to error messages reported for WAL file read/write/validate header failures |
Дата | |
Msg-id | CALj2ACU-mkbB31HOQqxB6mOCOpG2=JGSsXbc5e2xap_DrahJ-A@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Add LSN along with offset to error messages reported for WAL file read/write/validate header failures (Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>) |
Ответы |
Re: Add LSN along with offset to error messages reported for WAL file read/write/validate header failures
|
Список | pgsql-hackers |
On Mon, Dec 19, 2022 at 5:22 PM Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com> wrote: > > On Mon, Dec 19, 2022 at 1:37 PM Michael Paquier <michael@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
В списке pgsql-hackers по дате отправления: