Re: [HACKERS] jsonb_set array append hack?

2015-10-03 Thread Peter Geoghegan
On Mon, Sep 21, 2015 at 2:21 PM, Andrew Dunstan wrote: >> 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}',

Re: [HACKERS] jsonb_set array append hack?

2015-10-03 Thread Andrew Dunstan
On 10/03/2015 04:49 PM, Peter Geoghegan wrote: On Mon, Sep 21, 2015 at 2:21 PM, Andrew Dunstan wrote: Thanks for the explanation. So, basically, it should be like this, am I right? postgres=# SELECT jsonb_set( '{"name": "Joe", "vehicle_types": ["car",

Re: [HACKERS] jsonb_set array append hack?

2015-09-24 Thread Dmitry Dolgov
>> For that matter, we should probably disallow NULL path elements also, shouldn't we? > I'd say yes. Well, here is the new `setPath` function with this modification. Is it what did you mean? non_integer_in_path2.patch Description: Binary data -- Sent via pgsql-hackers mailing list

Re: [HACKERS] jsonb_set array append hack?

2015-09-21 Thread Thom Brown
On 21 September 2015 at 22:21, Andrew Dunstan 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

Re: [HACKERS] jsonb_set array append hack?

2015-09-21 Thread Dmitry Dolgov
> 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

Re: [HACKERS] jsonb_set array append hack?

2015-09-21 Thread Andrew Dunstan
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

Re: [HACKERS] jsonb_set array append hack?

2015-09-20 Thread Thom Brown
On 20 September 2015 at 16:17, Dmitry Dolgov <9erthali...@gmail.com> wrote: > I'm sorry, but I'm not sure, what behavior is expected in this case? > Right now the following logic was implemented: > "we trying to set an element inside an array, but we've got a > non-integer path item >

Re: [HACKERS] jsonb_set array append hack?

2015-09-20 Thread Dmitry Dolgov
I'm sorry, but I'm not sure, what behavior is expected in this case? Right now the following logic was implemented: "we trying to set an element inside an array, but we've got a non-integer path item ("nonsense" in this particular case), so we're going to add a new element at the end of

[HACKERS] jsonb_set array append hack?

2015-09-14 Thread Thom Brown
Hi, I've noticed that if you use a string for an element key in jsonb_set with create_missing set to true, you can use it to append to an array: postgres=# SELECT jsonb_set( '{"name": "Joe", "vehicle_types": ["car","van"]}'::jsonb, '{vehicle_types,nonsense}',

Re: [HACKERS] jsonb_set array append hack?

2015-09-14 Thread Andrew Dunstan
On 09/14/2015 01:29 PM, Thom Brown wrote: Hi, I've noticed that if you use a string for an element key in jsonb_set with create_missing set to true, you can use it to append to an array: postgres=# SELECT jsonb_set( '{"name": "Joe", "vehicle_types": ["car","van"]}'::jsonb,