Re: update substring pattern matching syntax
Fabien COELHO <coelho@cri.ensmp.fr>
From: Fabien COELHO <coelho@cri.ensmp.fr>
To: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-06-20T07:08:06Z
Lists: pgsql-hackers
Hello Peter, > whereas the current standard says > > SUBSTRING(text SIMILAR pattern ESCAPE escapechar) > > The former was in SQL99, but the latter has been there since SQL:2003. > > It's pretty easy to implement the second form also, so here is a patch that > does that. Patches apply cleanly, compile and "make check" is ok. doc gen is ok as well. Grammar cleanup is a definite improvement as it makes the grammar closer to the actual syntax. I cannot say I'm a fan of this kind of keywords added for some arguments. I guess that it allows distinguishing between variants. I do not have the standard at hand: I wanted to check whether these keywords could be reordered, i.e. whether SUBSTRING(text ESCAPE ec SIMILAR part) was legal. I guess not. Maybe the doc could advertise more systematically whether a features conforms fully or partially to some SQL standards, or is pg specific. The added documentation refers both to SQL:1999 and SQL99. I'd suggest to chose one, possibly the former, and use it everywhere consistently. It seems that two instances where not updated to the new syntax, see in ./src/backend/catalog/information_schema.sql and ./contrib/citext/sql/citext.sql. -- Fabien.
Commits
-
Add current substring regular expression syntax
- 78c887679d76 14.0 landed
-
Clean up grammar a bit
- aafefb4dcbf7 14.0 landed