| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | jian he <jian(dot)universality(at)gmail(dot)com> |
| Cc: | pgsql-docs(at)lists(dot)postgresql(dot)org |
| Subject: | Re: substring synopsis section, third argument is optional doc didn't show that |
| Date: | 2025-01-21 16:53:24 |
| Message-ID: | 3354664.1737478404@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-docs |
jian he <jian(dot)universality(at)gmail(dot)com> writes:
> https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-SIMILARTO-REGEXP
> """
> or as a plain three-argument function:
> substring(string, pattern, escape-character)
> """
> but here "escape-character" is optional.
> substring(string, pattern [,escape-character])
> would be more accurate.
No, the text is correct as written. substring(text, text) is a
completely different function that implements POSIX regular
expressions, not SQL regular expressions. It's described in
the next section (9.7.3). For example,
regression=# select substring('foobar', 'o.b');
substring
-----------
oob
(1 row)
regression=# select substring('foobar', 'o.b', '');
substring
-----------
(1 row)
because '.' is a metacharacter in POSIX but not SQL regexps.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2025-01-21 17:26:03 | Re: Request for Formal Syntax of WHERE Clause Conditions |
| Previous Message | PG Doc comments form | 2025-01-21 16:01:59 | Request for Formal Syntax of WHERE Clause Conditions |