Rename pg_dissect_walfile_name() to pg_split_walfile_name()
The former name was discussed as being confusing, so use "split", as per a suggestion from Magnus Hagander. While on it, one of the output arguments is renamed from "segno" to "segment_number", as per a suggestion from Kyotaro Horiguchi. The documentation is updated to reflect all these changes. Bump catalog version. Author: Bharath Rupireddy, Michael Paquier Discussion: https://postgr.es/m/CABUevEytQVaOOhGdoh0D7hGwe3fuKcRF6NthsSW7ww04EmtFgQ@mail.gmail.com
This commit is contained in:
parent
ed1a88ddac
commit
13e0d7a603
|
@ -26101,15 +26101,15 @@ LOG: Grand total: 1651920 bytes in 201 blocks; 622360 free (88 chunks); 1029560
|
|||
<row>
|
||||
<entry role="func_table_entry"><para role="func_signature">
|
||||
<indexterm>
|
||||
<primary>pg_dissect_walfile_name</primary>
|
||||
<primary>pg_split_walfile_name</primary>
|
||||
</indexterm>
|
||||
<function>pg_dissect_walfile_name</function> ( <parameter>file_name</parameter> <type>text</type> )
|
||||
<function>pg_split_walfile_name</function> ( <parameter>file_name</parameter> <type>text</type> )
|
||||
<returnvalue>record</returnvalue>
|
||||
( <parameter>segno</parameter> <type>numeric</type>,
|
||||
( <parameter>segment_number</parameter> <type>numeric</type>,
|
||||
<parameter>timeline_id</parameter> <type>bigint</type> )
|
||||
</para>
|
||||
<para>
|
||||
Extracts the file sequence number and timeline ID from a WAL file
|
||||
Extracts the sequence number and timeline ID from a WAL file
|
||||
name.
|
||||
</para></entry>
|
||||
</row>
|
||||
|
@ -26172,13 +26172,13 @@ postgres=# SELECT * FROM pg_walfile_name_offset((pg_backup_stop()).lsn);
|
|||
</para>
|
||||
|
||||
<para>
|
||||
<function>pg_dissect_walfile_name</function> is useful to compute a
|
||||
<function>pg_split_walfile_name</function> is useful to compute a
|
||||
<acronym>LSN</acronym> from a file offset and WAL file name, for example:
|
||||
<programlisting>
|
||||
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,
|
||||
postgres=# SELECT '0/0'::pg_lsn + pd.segment_number * ps.setting::int + :offset AS lsn
|
||||
FROM pg_split_walfile_name(:'file_name') pd,
|
||||
pg_show_all_settings() ps
|
||||
WHERE ps.name = 'wal_segment_size';
|
||||
lsn
|
||||
|
|
|
@ -437,16 +437,16 @@ pg_walfile_name(PG_FUNCTION_ARGS)
|
|||
* name.
|
||||
*/
|
||||
Datum
|
||||
pg_dissect_walfile_name(PG_FUNCTION_ARGS)
|
||||
pg_split_walfile_name(PG_FUNCTION_ARGS)
|
||||
{
|
||||
#define PG_DISSECT_WALFILE_NAME_COLS 2
|
||||
#define PG_SPLIT_WALFILE_NAME_COLS 2
|
||||
char *fname = text_to_cstring(PG_GETARG_TEXT_PP(0));
|
||||
char *fname_upper;
|
||||
char *p;
|
||||
TimeLineID tli;
|
||||
XLogSegNo segno;
|
||||
Datum values[PG_DISSECT_WALFILE_NAME_COLS] = {0};
|
||||
bool isnull[PG_DISSECT_WALFILE_NAME_COLS] = {0};
|
||||
Datum values[PG_SPLIT_WALFILE_NAME_COLS] = {0};
|
||||
bool isnull[PG_SPLIT_WALFILE_NAME_COLS] = {0};
|
||||
TupleDesc tupdesc;
|
||||
HeapTuple tuple;
|
||||
char buf[256];
|
||||
|
@ -482,7 +482,7 @@ pg_dissect_walfile_name(PG_FUNCTION_ARGS)
|
|||
|
||||
PG_RETURN_DATUM(result);
|
||||
|
||||
#undef PG_DISSECT_WALFILE_NAME_COLS
|
||||
#undef PG_SPLIT_WALFILE_NAME_COLS
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -57,6 +57,6 @@
|
|||
*/
|
||||
|
||||
/* yyyymmddN */
|
||||
#define CATALOG_VERSION_NO 202212231
|
||||
#define CATALOG_VERSION_NO 202212232
|
||||
|
||||
#endif
|
||||
|
|
|
@ -6374,11 +6374,11 @@
|
|||
prosrc => 'pg_walfile_name' },
|
||||
{ oid => '8205',
|
||||
descr => 'sequence number and timeline ID given a wal filename',
|
||||
proname => 'pg_dissect_walfile_name', provolatile => 's',
|
||||
proname => 'pg_split_walfile_name', provolatile => 's',
|
||||
prorettype => 'record', proargtypes => 'text',
|
||||
proallargtypes => '{text,numeric,int8}', proargmodes => '{i,o,o}',
|
||||
proargnames => '{file_name,segno,timeline_id}',
|
||||
prosrc => 'pg_dissect_walfile_name' },
|
||||
proargnames => '{file_name,segment_number,timeline_id}',
|
||||
prosrc => 'pg_split_walfile_name' },
|
||||
|
||||
{ oid => '3165', descr => 'difference in bytes, given two wal locations',
|
||||
proname => 'pg_wal_lsn_diff', prorettype => 'numeric',
|
||||
|
|
|
@ -619,26 +619,26 @@ SELECT count(*) > 0 AS ok FROM pg_control_system();
|
|||
t
|
||||
(1 row)
|
||||
|
||||
-- pg_dissect_walfile_name
|
||||
SELECT * FROM pg_dissect_walfile_name(NULL);
|
||||
segno | timeline_id
|
||||
-------+-------------
|
||||
|
|
||||
-- pg_split_walfile_name
|
||||
SELECT * FROM pg_split_walfile_name(NULL);
|
||||
segment_number | timeline_id
|
||||
----------------+-------------
|
||||
|
|
||||
(1 row)
|
||||
|
||||
SELECT * FROM pg_dissect_walfile_name('invalid');
|
||||
SELECT * FROM pg_split_walfile_name('invalid');
|
||||
ERROR: invalid WAL file name "invalid"
|
||||
SELECT segno > 0 AS ok_segno, timeline_id
|
||||
FROM pg_dissect_walfile_name('000000010000000100000000');
|
||||
ok_segno | timeline_id
|
||||
----------+-------------
|
||||
t | 1
|
||||
SELECT segment_number > 0 AS ok_segment_number, timeline_id
|
||||
FROM pg_split_walfile_name('000000010000000100000000');
|
||||
ok_segment_number | timeline_id
|
||||
-------------------+-------------
|
||||
t | 1
|
||||
(1 row)
|
||||
|
||||
SELECT segno > 0 AS ok_segno, timeline_id
|
||||
FROM pg_dissect_walfile_name('ffffffFF00000001000000af');
|
||||
ok_segno | timeline_id
|
||||
----------+-------------
|
||||
t | 4294967295
|
||||
SELECT segment_number > 0 AS ok_segment_number, timeline_id
|
||||
FROM pg_split_walfile_name('ffffffFF00000001000000af');
|
||||
ok_segment_number | timeline_id
|
||||
-------------------+-------------
|
||||
t | 4294967295
|
||||
(1 row)
|
||||
|
||||
|
|
|
@ -230,10 +230,10 @@ SELECT count(*) > 0 AS ok FROM pg_control_init();
|
|||
SELECT count(*) > 0 AS ok FROM pg_control_recovery();
|
||||
SELECT count(*) > 0 AS ok FROM pg_control_system();
|
||||
|
||||
-- pg_dissect_walfile_name
|
||||
SELECT * FROM pg_dissect_walfile_name(NULL);
|
||||
SELECT * FROM pg_dissect_walfile_name('invalid');
|
||||
SELECT segno > 0 AS ok_segno, timeline_id
|
||||
FROM pg_dissect_walfile_name('000000010000000100000000');
|
||||
SELECT segno > 0 AS ok_segno, timeline_id
|
||||
FROM pg_dissect_walfile_name('ffffffFF00000001000000af');
|
||||
-- pg_split_walfile_name
|
||||
SELECT * FROM pg_split_walfile_name(NULL);
|
||||
SELECT * FROM pg_split_walfile_name('invalid');
|
||||
SELECT segment_number > 0 AS ok_segment_number, timeline_id
|
||||
FROM pg_split_walfile_name('000000010000000100000000');
|
||||
SELECT segment_number > 0 AS ok_segment_number, timeline_id
|
||||
FROM pg_split_walfile_name('ffffffFF00000001000000af');
|
||||
|
|
Loading…
Reference in New Issue