From: | Thomas Kellerer <shammat(at)gmx(dot)net> |
---|---|
To: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: Using vars in jsonbpath operator ? |
Date: | 2023-06-16 13:24:54 |
Message-ID: | 39a04bd8-aefd-b02e-594b-ca875a884048@gmx.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Markur Sens schrieb am 16.06.2023 um 13:54:
> I understand that on a where clause a gin index can be used for the following predicate
>
> a.data @? '$.results.docs[*].accs[*] ? (@.id == “123")
>
> I have a join query however on the following condition
>
> jsonb_path_exists(a.data, '$.results.docs[*].accs[*] ? (@.number == $id)', jsonb_build_object(‘id', *b.id*)) but this cannot use a gin index afaik and results in a seq scan.
>
> Is there anyway to use the operator syntax above by passing the b.id <http://b.id> variable somwehow so that the gin index can be used ? ?
>
I think you will need to pass the whole jsonpath as a parameter, e.g.
a.data @? cast($1 as jsonpath)
At least that's the only way I could achieve this
From | Date | Subject | |
---|---|---|---|
Next Message | Dominique Devienne | 2023-06-16 13:25:49 | Re: Question: Multiple pg clusters on one server can be reached with the standard port. |
Previous Message | Laurenz Albe | 2023-06-16 12:50:40 | Re: Question: Multiple pg clusters on one server can be reached with the standard port. |