Re: Patch bug: Fix jsonpath .* on Arrays
Stepan Neretin <sncfmgg@gmail.com>
From: Stepan Neretin <sncfmgg@gmail.com>
To: "David E. Wheeler" <david@justatheory.com>
Cc: Степан Неретин <fenixrnd@mail.ru>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, "David G. Johnston" <david.g.johnston@gmail.com>
Date: 2024-06-27T04:53:14Z
Lists: pgsql-hackers
On Thu, Jun 27, 2024 at 1:16 AM David E. Wheeler <david@justatheory.com>
wrote:
> On Jun 25, 2024, at 13:48, David E. Wheeler <david@justatheory.com> wrote:
>
> > I have since realized it’s not a complete fix for the issue, and hacked
> around it in my Go version. Would be fine to remove that bit, but IIRC this
> was the only execution function that would return `jperNotFound` when it in
> fact adds items to the `found` list. The current implementation only looks
> at one or the other, so it’s not super important, but I found the
> inconsistency annoying and sometimes confusing.
>
> I’ve removed this change.
>
> >> [1] select jsonb_path_query('[1,2,3,{"b": [3,4,5]}]', 'strict $.*');
> >> I propose adding a similar test with explicitly specified lax mode:
> select jsonb_path_query('[1,2,3,{"b": [3,4,5]}]', 'lax $.*'); to show what
> lax mode is set by default.
> >
> > Very few of the other tests do so; I can add it if it’s important for
> this case, though.
>
> Went ahead and added lax.
>
> > @? suppresses a number of errors. Perhaps I should add a variant of the
> error-raising query that passes the silent arg, which would also suppress
> the error.
>
> Added a variant where the silent param suppresses the error, too.
>
> V2 attached and the PR updated:
>
> https://github.com/theory/postgres/pull/4/files
>
> Best,
>
> David
>
>
>
>
HI! Now it looks good for me.
Best regards, Stepan Neretin.
Commits
-
Add more test coverage for jsonpath "$.*" with arrays
- 3a137ab7e575 18.0 landed