From: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
---|---|
To: | Erik Rijkers <er(at)xs4all(dot)nl>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: JSON/SQL: jsonpath: incomprehensible error message |
Date: | 2022-06-27 15:15:57 |
Message-ID: | b4f3f56c-df15-0691-75b6-7e4f1874c6aa@dunslane.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2022-06-26 Su 11:44, Erik Rijkers wrote:
> JSON/SQL jsonpath
>
> For example, a jsonpath string with deliberate typo 'like_regexp'
> (instead of 'like_regex'):
>
> select js
> from (values (jsonb '{}')) as f(js)
> where js @? '$ ? (@ like_regexp "^xxx")';
>
> ERROR: syntax error, unexpected IDENT_P at or near " " of jsonpath input
> LINE 1: ...s from (values (jsonb '{}')) as f(js) where js @? '$ ? (@
> li...
> ^
>
> Both 'IDENT_P' and 'at or near " "' seem pretty useless.
>
> Perhaps some improvement can be thought of?
>
> Similar messages in release 14 seem to use 'invalid token', which is
> better:
>
> select js
> from (values (jsonb '{"a":"b"}')) as f(js)
> where js @? '$ ? (@.a .= "b")';
> ERROR: syntax error, unexpected invalid token at or near "=" of
> jsonpath input
>
>
Yeah :-(
This apparently goes back to the original jsonpath commit 72b6460336e.
There are similar error messages in the back branch regression tests:
andrew(at)ub20:pgl $ grep -r IDENT_P pg_*/src/test/regress/expected/
pg_12/src/test/regress/expected/jsonpath.out:ERROR: syntax error, unexpected IDENT_P at end of jsonpath input
pg_13/src/test/regress/expected/jsonpath.out:ERROR: syntax error, unexpected IDENT_P at end of jsonpath input
pg_14/src/test/regress/expected/jsonpath.out:ERROR: syntax error, unexpected IDENT_P at end of jsonpath input
For some reason the parser contains a '%error-verbose' directive, unlike
all our other bison parsers. Removing that fixes it, as in this patch.
I'm a bit inclined to say we should backpatch the removal of the
directive, but I guess a lack of complaints suggests it's not a huge issue.
cheers
andrew
--
Andrew Dunstan
EDB: https://www.enterprisedb.com
Attachment | Content-Type | Size |
---|---|---|
jsonpath-parser-fix.patch | text/x-patch | 1.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Hannu Krosing | 2022-06-27 15:23:22 | Re: [PoC] Improve dead tuple storage for lazy vacuum |
Previous Message | Julien Rouhaud | 2022-06-27 15:10:07 | Re: Making the subquery alias optional in the FROM clause |