Re: Jsonpath ** vs lax mode
Alexander Korotkov <aekorotkov@gmail.com>
From: Alexander Korotkov <aekorotkov@gmail.com>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>,
Nikita Glukhov <n.gluhov@postgrespro.ru>, Oleg Bartunov <obartunov@postgrespro.ru>,
Teodor Sigaev <teodor@postgrespro.ru>, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2021-01-28T21:44:17Z
Lists: pgsql-hackers
Attachments
- jsonpath-double-star-lax-docs.patch (application/octet-stream) patch
On Mon, Jan 25, 2021 at 6:33 PM Alexander Korotkov <aekorotkov@gmail.com> wrote: > On Thu, Jan 21, 2021 at 4:35 PM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote: > > On 2021-Jan-21, Alexander Korotkov wrote: > > > > > Requiring strict mode for ** is a solution, but probably too restrictive... > > > > > > What do you think about making just subsequent accessor after ** not > > > to unwrap arrays. That would be a bit tricky to implement, but > > > probably that would better satisfy the user needs. > > > > Hmm, why is it too restrictive? If the user needs to further drill into > > the JSON, can't they chain json_path_query calls, specifying (or > > defaulting to) lax mode for the part doesn't include the ** expression? > > For sure, there are some walkarounds. But I don't think all the > lax-mode queries involving ** are affected. So, it might happen that > we force users to use strict-mode or chain call even if it's not > necessary. I'm tending to just fix the doc and wait if there are mode > complaints :) The patch, which clarifies this situation in the docs is attached. I'm going to push it if no objections. ------ Regards, Alexander Korotkov
Commits
-
Document behavior of the .** jsonpath accessor in the lax mode
- bd6366129b1b 12.6 landed
- 9915fe22969a 13.2 landed
- b41645460af5 14.0 landed