David G. Johnston schrieb am 04.07.2019 um 18:20:
On Thu, Jul 4, 2019 at 6:18 AM Thomas Kellerer <spam_eater@xxxxxxx <mailto:spam_eater@xxxxxxx>> wrote: Why does select jsonb_set('{"foo": 1}'::jsonb, '{bar}', to_jsonb(null::int), true) return NULL when all it should do is to add a second key? Both functions involved are defined as being STRICT (null on null input). You need to COALSESCE SQL NULL to JSON 'null' to obtain the result you desire. This is a general truth when dealing with the JSON type in PostgreSQL.
But jsonb_set() doesn't change (or shouldn't) the whole value, only one key. I can understand that the "bar" key would not be set (because of the NULL), but removing a key that isn't even part of the target path looks like a bug to. Thomas