Re: Avoid undesired flattening of jsonb arrays?

From: "Joel Jacobson" <joel(at)compiler(dot)org>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Avoid undesired flattening of jsonb arrays?
Date: 2020-12-18 17:03:16
Message-ID: 358bd217-0891-4f9f-b82f-082bf139191d@www.fastmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

The following nicer work-around was suggested to me by Andreas Karlsson:

- jsonb_insert(x.jsonb_array,'{-1}',next_item.item,TRUE)
+ x.jsonb_array || jsonb_build_array(next_item.item)

On Fri, Dec 18, 2020, at 17:20, Tom Lane wrote:
> "David G. Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> writes:
> > I'll agree that the description could discuss the case explicitly, and the
> > array||scalar case could be added to the examples.
>
> Yeah, the documentation completely fails to explain what happens
> when the inputs aren't two arrays or two objects. I'd kind of assumed
> that that's an error, but it isn't. Some experimentation indicates
> that the behavior in all cases except two objects is to convert any
> non-array input to a one-element array, reducing the situation to the
> two-array case.
>
> regards, tom lane
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2020-12-18 19:16:19 Re: Unexpected result count from update statement on partitioned table
Previous Message Tom Lane 2020-12-18 16:20:34 Re: Avoid undesired flattening of jsonb arrays?