Re: add function argument name to substring and substr - Mailing list pgsql-hackers

From David G. Johnston
Subject Re: add function argument name to substring and substr
Date
Msg-id CAKFQuwa-j+oA23EVA7qk+AUdpi24d1LC_O9MH5oSnzOv2McEhg@mail.gmail.com
Whole thread Raw
In response to Re: add function argument name to substring and substr  (jian he <jian.universality@gmail.com>)
Responses Re: add function argument name to substring and substr
List pgsql-hackers
On Tue, Mar 18, 2025 at 6:20 PM jian he <jian.universality@gmail.com> wrote:
On Wed, Mar 19, 2025 at 8:19 AM David G. Johnston
<david.g.johnston@gmail.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.

pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: Update Unicode data to Unicode 16.0.0
Next
From: Nathan Bossart
Date:
Subject: Re: Disabling vacuum truncate for autovacuum