From: | Richard Guo <guofenglinux(at)gmail(dot)com> |
---|---|
To: | Евгений Горбанев <gorbanyoves(at)basealt(dot)ru> |
Cc: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: Assert failure in base_yyparse |
Date: | 2025-03-28 09:05:48 |
Message-ID: | CAMbWs4-9Zde_MU8h-hvfGv6gpi98ZWUFTwESN3DaS0hzJECAww@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, Mar 28, 2025 at 4:40 PM Евгений Горбанев <gorbanyoves(at)basealt(dot)ru> wrote:
> Got an assert failure when fuzzing the raw_parser function.
> The query to reproduce:
> SELECT xmltable.* FROM xmltest2, LATERAL xmltable('/d/r' PASSING x
> COLUMNS a int PATH '' || lower(_path) is_not_null|| 'c');
>
> If I understand correctly, is_not_null is considered as a valid keyword
> in xmltable, but it gets the type T_A_Expr.
> Prepared a patch to fix it, but there may be a better solution.
Nice catch. Yeah, is_not_null is a valid column option in xmltable.
In you example, the value of the is_not_null option is "|| 'c'", which
is interpreted as an A_Expr.
I wonder if the value's type should be checked earlier, rather than at
the last minute.
Also, I think IsA is a better choice for checking the node type.
Thanks
Richard
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Kapila | 2025-03-28 09:15:16 | Re: Selectively invalidate caches in pgoutput module |
Previous Message | Hayato Kuroda (Fujitsu) | 2025-03-28 09:02:29 | RE: Fix 035_standby_logical_decoding.pl race conditions |