Re: JSON Path and GIN Questions

Erik Wienhold <ewie@ewie.name>

From: Erik Wienhold <ewie@ewie.name>
To: "David E. Wheeler" <david@justatheory.com>, Erik Rijkers <er@xs4all.nl>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2023-09-16T20:50:13Z
Lists: pgsql-hackers
On 16/09/2023 22:19 CEST David E. Wheeler <david@justatheory.com> wrote:

> On Sep 15, 2023, at 23:59, Erik Rijkers <er@xs4all.nl> wrote:
>
> > movie @? '$ ?($.year >= 2023)'
> >
> > I believe it is indeed not possible to have such a unequality-search use
> > the GIN index.  It is another weakness of JSON that can be unexpected to
> > those not in the fullness of Knowledge of the manual. Yes, this too would
> > be good to explain in the doc where JSON indexes are explained.
>
> Is that a limitation of GIN indexes in general? Or could there be opclass
> improvements in the future that would enable such comparisons?

This detail is mentioned in docs [1]:

"For these operators, a GIN index extracts clauses of the form
 **accessors_chain = constant** out of the jsonpath pattern, and does the
 index search based on the keys and values mentioned in these clauses."

I don't know if this is a general limitation of GIN indexes or just how these
operators are implemented right now.

[1] https://www.postgresql.org/docs/current/datatype-json.html#JSON-INDEXING

--
Erik



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Doc: add a bit to indices.sgml about what is an indexable clause.