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
>
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? |