On May 22, 2015, at 7:22 PM, Andrew Dunstan <[email protected]> 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
smime.p7s
Description: S/MIME cryptographic signature
