From d30592f190860cc68d08f956ac6853aa2c60e1bf Mon Sep 17 00:00:00 2001 From: jian he Date: Wed, 31 Dec 2025 15:26:31 +0800 Subject: [PATCH v10 1/2] Add argument names to the substr functions This change allows substr function to be called using named-argument notation, which can be helpful for readability, particularly for the ones with many arguments. No changes to the citext extension are required, since the citext data type does not define a specialized substr function. commitfest: https://commitfest.postgresql.org/patch/5524 Discussion: https://postgr.es/m/CACJufxHTBkymh06D4mGKNe1YfRNFN+gFBybmygWk=PtMqu00LQ@mail.gmail.com --- doc/src/sgml/func/func-binarystring.sgml | 4 ++-- doc/src/sgml/func/func-string.sgml | 4 ++-- src/include/catalog/pg_proc.dat | 4 ++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/doc/src/sgml/func/func-binarystring.sgml b/doc/src/sgml/func/func-binarystring.sgml index b256381e01f..58051595126 100644 --- a/doc/src/sgml/func/func-binarystring.sgml +++ b/doc/src/sgml/func/func-binarystring.sgml @@ -571,11 +571,11 @@ substr - substr ( bytes bytea, start integer , count integer ) + substr ( source bytea, start integer , count integer ) bytea - Extracts the substring of bytes starting at + Extracts the substring of source starting at the start'th byte, and extending for count bytes if that is specified. (Same diff --git a/doc/src/sgml/func/func-string.sgml b/doc/src/sgml/func/func-string.sgml index 7ad1436e5f8..3325ade065a 100644 --- a/doc/src/sgml/func/func-string.sgml +++ b/doc/src/sgml/func/func-string.sgml @@ -1390,11 +1390,11 @@ substr - substr ( string text, start integer , count integer ) + substr ( source text, start integer , count integer ) text - Extracts the substring of string starting at + Extracts the substring of source starting at the start'th character, and extending for count characters if that is specified. (Same diff --git a/src/include/catalog/pg_proc.dat b/src/include/catalog/pg_proc.dat index 60f7ce502f6..6c6f31f7043 100644 --- a/src/include/catalog/pg_proc.dat +++ b/src/include/catalog/pg_proc.dat @@ -3718,6 +3718,7 @@ prosrc => 'rtrim' }, { oid => '877', descr => 'extract portion of string', proname => 'substr', prorettype => 'text', proargtypes => 'text int4 int4', + proargnames => '{source, start, count}', prosrc => 'text_substr' }, { oid => '878', descr => 'map a set of characters appearing in string', proname => 'translate', prorettype => 'text', proargtypes => 'text text text', @@ -3736,6 +3737,7 @@ prosrc => 'rtrim1' }, { oid => '883', descr => 'extract portion of string', proname => 'substr', prorettype => 'text', proargtypes => 'text int4', + proargnames => '{source, start}', prosrc => 'text_substr_no_len' }, { oid => '884', descr => 'trim selected characters from both ends of string', proname => 'btrim', prorettype => 'text', proargtypes => 'text text', @@ -6306,9 +6308,11 @@ prosrc => 'bytea_substr_no_len' }, { oid => '2085', descr => 'extract portion of string', proname => 'substr', prorettype => 'bytea', proargtypes => 'bytea int4 int4', + proargnames => '{source, start, count}', prosrc => 'bytea_substr' }, { oid => '2086', descr => 'extract portion of string', proname => 'substr', prorettype => 'bytea', proargtypes => 'bytea int4', + proargnames => '{source, start}', prosrc => 'bytea_substr_no_len' }, { oid => '2014', descr => 'position of substring', proname => 'position', prorettype => 'int4', proargtypes => 'bytea bytea', -- 2.34.1