Re: jsonb_set: update or upsert default?

From: "David E(dot) Wheeler" <david(at)justatheory(dot)com>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: jsonb_set: update or upsert default?
Date: 2015-05-23 15:59:02
Message-ID: B3D315A2-5553-49F5-AA47-9F57DA6BBE1F@justatheory.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On May 22, 2015, at 7:22 PM, Andrew Dunstan <andrew(at)dunslane(dot)net> wrote:

> The proposed flag for jsonb_set (the renamed jsonb_replace) in the patch I recently published is set to false, meaning that the default behaviour is to require all elements of the path including the last to be present. What that does is effectively UPDATE for jsonb. If the flag is true, then the last element can be absent, in which case it's created, so this is basically UPSERT for jsonb. The question is which should be the default. We got into the weeds on this with suggestions of throwing errors on missing paths, but that's going nowhere, and I want to get discussion back onto the topic of what should be the default.

Here’s JavaScript in Chrome, FWIW:

var f = {}
f["foo"][0] = “bar"
Uncaught TypeError: Cannot set property '0' of undefined
at <anonymous>:2:13
at Object.InjectedScript._evaluateOn (<anonymous>:895:140)
at Object.InjectedScript._evaluateAndWrap (<anonymous>:828:34)
at Object.InjectedScript.evaluate (<anonymous>:694:21)

Best,

David

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2015-05-23 16:13:35 Re: Run pgindent now?
Previous Message Andrew Dunstan 2015-05-23 15:58:58 Re: Re: [COMMITTERS] pgsql: Map basebackup tablespaces using a tablespace_map file