Re: jsonb array-style subscripting

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: jsonb array-style subscripting
Дата
Msg-id 55D239B3.1060407@dunslane.net
обсуждение исходный текст
Ответ на Re: jsonb array-style subscripting  (Merlin Moncure <mmoncure@gmail.com>)
Ответы Re: jsonb array-style subscripting  (Merlin Moncure <mmoncure@gmail.com>)
Список pgsql-hackers

On 08/17/2015 03:26 PM, Merlin Moncure wrote:
>
> I'm not sure if this:
> update test_jsonb_subscript set test_json['a']['a1']['a2'] = 42;
>
> ...is a good idea. postgres operators tend to return immutable copies
> of the item they are referring to.  In other words, you'd never see a
> column operator on the 'left' side of the equals in an update
> statement.  I think you need to look at a function to get the behavior
> you want:
>
> update test_jsonb_subscript set test_json = jsonb_modify(test_json,
> '[a][a1][a2] = 42');]
>
> ...as a hypothetical example.   The idea is you need to make a
> function that provides the ability to make the complete json you want.
> Update statements always make a copy of the record anyways.
>


Why should jsonb be different from an array? You can assign to an array 
element, using exactly this syntax, except that the index expressions 
have to be integers.

This was discussed at pgcon and generally met with approval. There is 
some demand for it. If Dmitry hadn't done this I would probably have 
done it myself.

cheers

andrew



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: Re: jsonb array-style subscripting
Следующее
От: Andres Freund
Дата:
Сообщение: Re: replication slot restart_lsn initialization