On 08/18/2015 01:11 AM, Kaare Rasmussen wrote:
> On 2015-08-17 22:33, Josh Berkus wrote:
>> So, both perl and python do not allow "deep nesting" of assignments.
>> For example:
>>>>> d = { "a" : { } }
>>>>> d["a"]["a1"]["a2"] = 42
>> Traceback (most recent call last):
>> File "<stdin>", line 1, in <module>
>> KeyError: 'a1'
>
> Not sure I understand what you mean. In Perl you'd do
>
> $ perl -e '%d = (a => {}); $d{a}{a1}{a2} = 42; print $d{a}{a1}{a2}'
> 42
>
> which looks pretty much like what's proposed.
>
>
Indeed, I mentioned recently that perl auto-vivifies intermediate paths
like this.
But we don't do that in jsonb_set, as was discussed back in May, and as
JS doesn't either I think that decision is sound.
cheers
andrew