Re: jsonb_array_elements_recursive()

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Zhihong Yu <zyu(at)yugabyte(dot)com>
Cc: Joel Jacobson <joel(at)compiler(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, PostgreSQL Developers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: jsonb_array_elements_recursive()
Date: 2021-02-07 17:35:51
Message-ID: CAFj8pRBzhudFrUDAsZAVY1zzdxnuPZmRj_cnR9nm+5AMB0QN-w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi

ne 7. 2. 2021 v 18:31 odesílatel Zhihong Yu <zyu(at)yugabyte(dot)com> napsal:

> Hi,
> # SELECT '[[5,2],"a",[8,[3,2],6]]'::jsonb;
> jsonb
> -------------------------------
> [[5, 2], "a", [8, [3, 2], 6]]
> (1 row)
>
> unnest(array[[3,2],"a",[1,4]]) is not accepted currently.
>
> Would the enhanced unnest accept the above array ?
>

There should be a special overwrite for json type. Json can hold an array,
but from Postgres perspective, it is not an array.

But there is really one specific case. We can have an array of json(b), and
inside there should be other arrays. So nesting can be across values.

Regards

Pavel

>
> Cheers
>
> On Sun, Feb 7, 2021 at 8:31 AM Joel Jacobson <joel(at)compiler(dot)org> wrote:
>
>> On Sun, Feb 7, 2021, at 17:27, Tom Lane wrote:
>> >"Joel Jacobson" <joel(at)compiler(dot)org> writes:
>> >> Having thought about this some more,
>> >> the function name should of course be jsonb_unnest(),
>> >> similar to how unnest() works for normal arrays:
>> >
>> >Why not just unnest(), then?
>> >
>> >regards, tom lane
>>
>> Ahh, of course! I totally forgot about function overloading when thinking
>> about this.
>>
>> +1
>>
>> /Joel
>>
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message David G. Johnston 2021-02-07 17:37:51 Re: jsonb_array_elements_recursive()
Previous Message Zhihong Yu 2021-02-07 17:33:29 Re: jsonb_array_elements_recursive()