Re: Unexpected extra row from jsonb_path_query() with a recursivepath

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема Re: Unexpected extra row from jsonb_path_query() with a recursivepath
Дата
Msg-id 20191209072856.GA71819@paquier.xyz
обсуждение исходный текст
Ответ на Unexpected extra row from jsonb_path_query() with a recursive path  (Jan Przemysław Wójcik <jan.przemyslaw.wojcik@gmail.com>)
Ответы Re: Unexpected extra row from jsonb_path_query() with a recursive path  (Jan Przemysław Wójcik <jan.przemyslaw.wojcik@gmail.com>)
Список pgsql-bugs
(Adding Alexander and Nikita in CC.)

On Sun, Dec 08, 2019 at 12:43:18PM +0100, Jan Przemysław Wójcik wrote:
> select jsonb_path_query('{"data": [{"key": "value"}]}', '$.**.key')
>
> Actual output:
>
>  jsonb_path_query
> ------------------
>  "value"
>  "value"
> (2 rows)
>
> Expected output:
>
>  jsonb_path_query
> ------------------
>  "value"
> (1 row)

So...  .** means that it processes all the levels of the JSON
hierarchy and that it returns all the member values, including all the
members of an array as well as the array itself.  Hence, based on your
previous example we have that:
=# select jsonb_path_query('{"data": [{"key": "value"}]}', '$.**');
       jsonb_path_query
------------------------------
 {"data": [{"key": "value"}]}
 [{"key": "value"}]
 {"key": "value"}
 "value"
(4 rows)

that's what I would expect here with both the array and each one of
its elements to be selected.

Hence the question of Jan would be I guess the following: should the
value of first element of the array be selected or not in this case?
I am not completely sure if that's the wanted behavior or not, but I
would expect {"key": "value"} to be the only part selected, and only
one value to be returned, so this smells like a bug.  Jan, is that
what you meant?

Alexander, Nikita, any opinions to offer?
--
Michael

Вложения

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

Предыдущее
От: Andrey Lepikhov
Дата:
Сообщение: Warning in the RecordTransactionAbort routine during compilation withO3 flag
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: Warning in the RecordTransactionAbort routine during compilationwith O3 flag