Re: Sanding down some edge cases for PL/pgSQL reserved words
Pavel Stehule <pavel.stehule@gmail.com>
From: Pavel Stehule <pavel.stehule@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org, Jan Behrens <jbe-mlist@magnetkern.de>
Date: 2025-06-10T04:40:42Z
Lists: pgsql-hackers
Hi > > 1. AFAICS, there is no real reason for STRICT to be a reserved > rather than unreserved PL/pgSQL keyword, and for that matter not > EXECUTE either. Making them unreserved does allow some ambiguity, > but I don't think there's any surprises in how that ambiguity > would be resolved; and certainly we've preferred ambiguity over > introducing new reserved keywords in PL/pgSQL before. I think > these two just escaped that treatment by dint of being ancient. > > I checked other reserved keywords and I didn't see any reason to be reserved keywords for K_TO, K_NOT. K_FOREACH, and K_WHILE are reserved probably because are used after opt_loop_label - but it is not necessary Other keywords are used as some delimiter or as protection against parser's conflicts. Regards Pavel
Commits
-
Improve error report for PL/pgSQL reserved word used as a field name.
- 0836683a8977 19 (unreleased) landed
-
De-reserve keywords EXECUTE and STRICT in PL/pgSQL.
- 999f172ded2b 19 (unreleased) landed