Re: CASE control block broken by a single line comment
Erik Wienhold <ewie@ewie.name>
From: Erik Wienhold <ewie@ewie.name>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Michal Bartak <maxym.srpl@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2024-04-12T20:15:08Z
Lists: pgsql-hackers
On 2024-04-09 00:54 +0200, Tom Lane wrote:
> I poked at this and found that the failures occur when the patched
> code decides to trim an expression like "_r.v" to just "_r", naturally
> breaking the semantics completely. That happens because when
> plpgsql_yylex recognizes a compound token, it doesn't bother to
> adjust the token length to include the additional word(s).
Thanks Tom! I haven't had the time to look at your patch.
I'm surprised that the lexer handles compound tokens. I'd expect to
find that in the parser, especially because of using the context-aware
plpgsql_ns_lookup to determine if we have a T_DATUM or T_{WORD,CWORD}.
Is this done by the lexer to allow push-back of those compound tokens
and maybe even to also simplify some parser rules?
--
Erik
Commits
-
Fix plpgsql's handling of -- comments following expressions.
- f5cee411a190 13.15 landed
- dc5824a06e97 14.12 landed
- d85db0a8e95c 15.7 landed
- 5e9d8bed0094 12.19 landed
- 5392dd3d2ad5 17.0 landed
- 48f216dc634b 16.3 landed