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
|
Список | 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 по дате отправления: