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