Re: [GENERAL] replacing jsonb field value

2015-05-31 Thread Michael Paquier
On Sat, May 30, 2015 at 9:10 PM, Andreas Kretschmer wrote: > Michael Paquier wrote: > >> >> Append the new value to it the existing field, jsonb has as property >> to enforce key uniqueness, and uses the last value scanned for a given >> key. > > can you show a simple example, how to append a jso

Re: [GENERAL] replacing jsonb field value

2015-05-31 Thread Andreas Kretschmer
Glyn Astill wrote: > Prior to 9.5 you can't, I think you have to use something like jsonb_each to > unwrap it then wrap it back up again. > > The jsonbx extension, which I believe is what ended up in 9.5 has a simple > concatenate function (here: https://github.com/erthalion/jsonbx), I also ha

Re: [GENERAL] replacing jsonb field value

2015-05-30 Thread Glyn Astill
- Original Message - > From: Andreas Kretschmer > To: pgsql-general@postgresql.org > Cc: > Sent: Saturday, 30 May 2015, 13:10 > Subject: Re: [GENERAL] replacing jsonb field value > > Michael Paquier wrote: > >> >> Append the new value to

Re: [GENERAL] replacing jsonb field value

2015-05-30 Thread Andreas Kretschmer
Michael Paquier wrote: > > Append the new value to it the existing field, jsonb has as property > to enforce key uniqueness, and uses the last value scanned for a given > key. can you show a simple example, how to append a jsonb to an jsonb-field? Maybe i'm blind, but i can't find how it works.

Re: [GENERAL] replacing jsonb field value

2015-05-30 Thread Michael Paquier
On Sat, May 30, 2015 at 11:52 AM, john.tiger wrote: > using 9.4.2 > > suppose we have > create table test (id serial primary key, data jsonb); > insert into test (data) values ({"a":1, "b":2}) > > want to replace "b" with 3 > > okay, we are retrieving entire record > res = select * from test where

[GENERAL] replacing jsonb field value

2015-05-29 Thread john.tiger
using 9.4.2 suppose we have create table test (id serial primary key, data jsonb); insert into test (data) values ({"a":1, "b":2}) want to replace "b" with 3 okay, we are retrieving entire record res = select * from test where data ->> b = 2 newrec = res newrec["b" = 3 delete from test where