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-03-19 01:35:52
Message-ID: CAKFQuwa-j+oA23EVA7qk+AUdpi24d1LC_O9MH5oSnzOv2McEhg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Tue, Mar 18, 2025 at 6:20 PM jian he <jian(dot)universality(at)gmail(dot)com> wrote:

> On Wed, Mar 19, 2025 at 8:19 AM David G. Johnston
> <david(dot)g(dot)johnston(at)gmail(dot)com> wrote:
> >
> > The vast majority of examples throughout the manual use traditional
> function call syntax func_name(arg1, arg2, etc.); I'd rather keep with
> convention than start to scatter about alternative syntax choices just to
> give the random reader who happens upon this fairly esoteric part of the
> manual the benefit of seeing their options. If that is a goal, then I'd
> suggest spending some time in our Tutorial adding some more examples with
> these alternative forms to people looking to be exposed to new things in
> the place they'd go to look for them. They probably won't learn about them
> from the Syntax section.
> >
> > On the plus side, I agree now we should add:
> > substring(string text, pattern text[, escape-character text])
> > to Table 9.10
> >
> in Table Table 9.9 we have
> ```
> substring ( string text FROM pattern text ) → text
> Extracts the first substring matching POSIX regular expression; see
> Section 9.7.3.
> substring('Thomas' from '...$') → mas
> ```
>
> can we change to
> substring ( string text FROM pattern text ) → text
> substring ( string text, pattern text ) → text
> Extracts the first substring matching POSIX regular expression;
> the second format is not standardized. see Section 9.7.3.
> substring('Thomas' from '...$') → mas
>
>
No, based on the (I presume) fact that the substring(string, pattern)
variant is not defined in the SQL standard and Table 9.9 is reserved for
those functions.

It would be a different, but probably worth considering, patch to simply
combine Tables 9.9 and 9.10 and just denote which entries are standard and
which are not. The decision to split the tables along that property came
well before our current table format which seems much more amenable to
merging them together.

> if we add to
> ``substring ( string text, pattern text ) → text``
> Table 9.10,
> then maybe it feels like duplication?
> (same function in Table 9.9, Table 9.10, then we also need some words
> saying that they are the same)
>

We can/should add substring(string, pattern) to Table 9.10 for the same
reason and the same general wording that substr(string, start) exists on
that table.

I would be in favor of adding a similar "same as" comment to the functions
in Table 9.9

I just now processed the cross references in Table 9.9 to the POSIX
section. The new entry in Table 9.10 would want that too.

David J.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2025-03-19 01:42:45 Re: Disabling vacuum truncate for autovacuum
Previous Message Robert Haas 2025-03-19 01:34:50 Re: Update Unicode data to Unicode 16.0.0