From: | Dmitry Dolgov <9erthalion6(at)gmail(dot)com> |
---|---|
To: | "Ivan E(dot) Panchenko" <i(dot)panchenko(at)postgrespro(dot)ru>, pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: BUG #15140: Incorrect jsonb_set behavoir |
Date: | 2018-04-02 12:04:12 |
Message-ID: | CA+q6zcWorxezaaN9RQgURkmiyjer3nT8_zO2Sp6700FaROVk5Q@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
> On 2 April 2018 at 12:36, PG Bug reporting form <noreply(at)postgresql(dot)org> wrote:
> The following bug has been logged on the website:
>
> Bug reference: 15140
> Logged by: Ivan Panchenko
> Email address: i(dot)panchenko(at)postgrespro(dot)ru
> PostgreSQL version: 10.3
> Operating system: any
> Description:
>
> First. Impossible to create a nested structure for a path with more than one
> new keys.
>
> postgres => select jsonb_set('{}'::jsonb, array['x', 'y'],
> to_jsonb(1::text), true);
> jsonb_set
> -----------
> {}
> (1 строка)
>
> Expected {"x": { "y" : "1" }}
>
> Second. Setting a NULL value nullifies the whole JSON
>
> postgres=> select jsonb_set('{}'::jsonb, array['x'], null, true);
> jsonb_insert
> --------------
>
> (1 строка)
>
> Expected { "x" : null }
As far as I remember, these are not really bugs, but documented behavior.
About the first one, here is [1]:
All the items of the path parameter of jsonb_set as well as jsonb_insert
except the last item must be present in the target. If create_missing is
false, all items of the path parameter of jsonb_set must be present. If
these conditions are not met the target is returned unchanged.
Although I agree this can be confusing, and we may want to change this.
About the second one, `jsonb_set` is defined as a strict function, which means
`null` arguments will produce null as a result. To avoid this you can do:
=# select jsonb_set('{}'::jsonb, array['x'], 'null', true);
jsonb_set
-------------
{"x": null}
(1 row)
1: https://www.postgresql.org/docs/devel/static/functions-json.html
From | Date | Subject | |
---|---|---|---|
Next Message | Ivan E. Panchenko | 2018-04-02 14:58:15 | Re: BUG #15140: Incorrect jsonb_set behavoir |
Previous Message | PG Bug reporting form | 2018-04-02 10:36:45 | BUG #15140: Incorrect jsonb_set behavoir |