Re: Patch: Improve Boolean Predicate JSON Path Docs

Поиск
Список
Период
Сортировка
От David E. Wheeler
Тема Re: Patch: Improve Boolean Predicate JSON Path Docs
Дата
Msg-id FB75F45B-7D0D-4CD1-AD7F-1AF6A1AD0311@justatheory.com
обсуждение исходный текст
Ответ на Re: Patch: Improve Boolean Predicate JSON Path Docs  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Patch: Improve Boolean Predicate JSON Path Docs  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Jan 20, 2024, at 12:34, Tom Lane <tgl@sss.pgh.pa.us> wrote:

> It will take a predicate, but seems to always return true:
>
> regression=# select '{"a":[1,2,3,4,5]}'::jsonb @? '$.a[*] < 5' ;
> ?column?
> ----------
> t
> (1 row)
>
> regression=# select '{"a":[1,2,3,4,5]}'::jsonb @? '$.a[*] > 5' ;
> ?column?
> ----------
> t
> (1 row)

Just for the sake of clarity, this return value is “correct,” because @? and other functions and operators that expect
SQLstandard statements evaluate the SET returned by the JSONPath statement, but predicate check expressions don’t
returna set, but a always a single scalar value (true, false, or null). From the POV of the code expecting SQL standard
JSONPathresults, that’s a set of one. @? sees that the set is not empty so returns true. 

Best,

David




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Jeff Davis
Дата:
Сообщение: Re: [17] CREATE COLLATION default provider
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Patch: Improve Boolean Predicate JSON Path Docs