Re: add function argument name to substring and substr

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: jian he <jian(dot)universality(at)gmail(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: add function argument name to substring and substr
Date: 2025-02-17 22:12:59
Message-ID: CAKFQuwYD477A9Oy2PxRr_KY8t=k=jbOUK83ie0dS7fcpBsXS3Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Jan 21, 2025 at 11:21 PM jian he <jian(dot)universality(at)gmail(dot)com>
wrote:

> hi.
>
> attached patch add function argument name to function substring and substr
> you can see the visual changes.
> mater behavior:
>
> \df substring
> List of functions
> Schema | Name | Result data type | Argument data types | Type
>
> ------------+-----------+------------------+-------------------------+------
> pg_catalog | substring | bit | bit, integer | func
> pg_catalog | substring | bit | bit, integer, integer | func
> pg_catalog | substring | bytea | bytea, integer | func
> pg_catalog | substring | bytea | bytea, integer, integer | func
> pg_catalog | substring | text | text, integer | func
> pg_catalog | substring | text | text, integer, integer | func
> pg_catalog | substring | text | text, text | func
> pg_catalog | substring | text | text, text, text | func
>
> with patch
> List of functions
> Schema | Name | Result data type | Argument
> data types | Type
>
> ------------+-----------+------------------+--------------------------------------------------+------
> pg_catalog | substring | bit | bits bit, start integer
> | func
> pg_catalog | substring | bit | bits bit, start integer,
> count integer | func
> pg_catalog | substring | bytea | bytes bytea, start integer
> | func
> pg_catalog | substring | bytea | bytes bytea, start integer,
> count integer | func
> pg_catalog | substring | text | string text, pattern text
> | func
> pg_catalog | substring | text | string text, pattern
> text, escape_character text | func
> pg_catalog | substring | text | string text, start
> integer | func
> pg_catalog | substring | text | string text, start
> integer, count integer | func
>
> I did the same change to the function substr.
> since 9.7.2. SIMILAR TO Regular Expressions we use
> substring(string, pattern, escape-character)
> so i refactor the substring function argument name to
> substring(string text, pattern text, escape_character text).
>
> we can make it as ``substring(string text, pattern text, escape text).``
> then in 9.7.2, we need to change the substring synopsis section.
>
>
>

> one thing I am not sure is about
> 9.4. String Functions and Operators
> Table 9.9. SQL String Functions and Operators.
> Do we need entries for substring related functions?
>
> current signature
> substring ( string text [ FROM start integer ] [ FOR count integer ] )
> is kind of different from
> substring(string text, start integer, count integer).
> since the previous one can allow keywords "FROM", "FOR", the latter one
> won't.
>
>
Table 9.9 limits itself to those functions defined in the SQL standard;
which are basically the ones that use keywords instead of commas.

The substring(string, start, count) function you note is already covered in
Table 9.10 but we spell it substr(...)

I don't think adding yet more spellings of this same function is warranted
or desirable at this point. I'd maybe add a note if substring(,,,) works
to substr saying that substring is a valid alias. I could be convinced to
just document though.

David J.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Ilia Evdokimov 2025-02-17 22:13:34 Re: describe special values in GUC descriptions more consistently
Previous Message Tom Lane 2025-02-17 22:02:03 Re: Clarification on Role Access Rights to Table Indexes