On 21 September 2015 at 22:21, Andrew Dunstan <and...@dunslane.net> wrote:
> > > On 09/21/2015 12:13 PM, Dmitry Dolgov wrote: > >> > I would expect some kind of error. We're trying to address a position >> in an array, and we're instead passing a key. If it completes >> successfully, the chances are it isn't what the user intended. >> >> Thanks for the explanation. So, basically, it should be like this, am I >> right? >> >> postgres=# SELECT jsonb_set( >> '{"name": "Joe", "vehicle_types": ["car", "van"]}'::jsonb, >> '{vehicle_types, nonsense}', >> '"motorcycle"', true); >> ERROR: path element at the position 2 is not an integer >> > > > That seems reasonable. For that matter, we should probably disallow NULL > path elements also, shouldn't we? > I'd say yes. If someone really wants to name a field "null", they'll just have to quote it in the path. (e.g. '{contact,"null"}') -- Thom