Re: [PATH] Jsonb, insert a new value into an array at arbitrary position - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: [PATH] Jsonb, insert a new value into an array at arbitrary position
Date
Msg-id 5703F146.4010102@dunslane.net
Whole thread Raw
In response to Re: [PATH] Jsonb, insert a new value into an array at arbitrary position  (Teodor Sigaev <teodor@sigaev.ru>)
Responses Re: [PATH] Jsonb, insert a new value into an array at arbitrary position  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers

On 04/05/2016 12:42 PM, Teodor Sigaev wrote:
>> I've been asked to look at and comment on the SQL API of the feature. 
>> I think
>> it's basically sound, although there is one thing that's not clear 
>> from the
>> regression tests: what happens if we're inserting into an object and 
>> the key
>> already exists? e.g.:
>>
>> select jsonb_insert('{"a": {"b": "value"}}', '{a, b}', '"new_value"');
>>
>> I think this should be forbidden, i.e. the function shouldn't ever 
>> overwrite an
>> existing value. If that's not handled it should be, and either way 
>> there should
>> be a regression test for it.
>
> I'm agree about covering this case by tests, but I think it should be 
> allowed.
> In this case it will work exactly as jsbonb_set


It seems to me a violation of POLA to allow something called "insert" to 
do a "replace" instead.

cheers

andre




pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: Relation extension scalability
Next
From: Simon Riggs
Date:
Subject: Re: LOCK TABLE .. DEFERRABLE