On 24 February 2015 at 19:16, Josh Berkus <j...@agliodbs.com> wrote:

>
> > Is there a way to take the json:
> >
> > '{"a": 1, "b": 2, "c": {"type": "json", "stuff": "test"}, "d":
> > ["aa","bb","cc","dd"]}'
> >
> > and add "ee" to "d" without replacing it?  I can think of ways of
> > currently doing it, but it's very convoluted just for pushing a value to
> > an array.
>
> Can you think of a reasonable syntax for doing that via operators?  I
> can imagine that as a json_path function, i.e.:
>
> jsonb_add_to_path(jsonb, text[], jsonb)
>
> or where the end of the path is an array:
>
> jsonb_add_to_path(jsonb, text[], text|int|float|bool)
>
> But I simply can't imagine an operator syntax which would make it clear
> what the user intended.
>

No, there probably isn't a sane operator syntax for such an operation.  A
function would be nice.  I'd just want to avoid hacking away at arrays by
exploding them, adding a value then re-arraying them and replacing the
value.

-- 
Thom

Reply via email to