Thread: hstore - jsonb
Hi, A few questions about jsonb and hstore: 1. does jsonb replace hstore? 2. compatibility of jsonb <> hstore? 3. will the development of hstore continue? 4. is it recommended to use jsonb when planning new projects? Thanks Armand
On Fri, Apr 4, 2014 at 12:20 PM, Armand Turpel <armand.turpel.mnhn@gmail.com> wrote: > Hi, > > A few questions about jsonb and hstore: > > 1. does jsonb replace hstore? no, it's different data type > 2. compatibility of jsonb <> hstore? hstore is a simple key-value model, while jsonb - richer document-based model. > 3. will the development of hstore continue? I don't believe so, we froze nested hstore to concentrate development resources to jsonb. Nested hstore still available from http://www.sigaev.ru/git/gitweb.cgi?p=hstore.git;a=summary It's should be compatible with 9.3 > 4. is it recommended to use jsonb when planning new projects? yes, we are working on jsonb support. > > Thanks > Armand > > > -- > Sent via pgsql-general mailing list (pgsql-general@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general
On 4 April 2014 13:04, Oleg Bartunov <obartunov@gmail.com> wrote: > On Fri, Apr 4, 2014 at 12:20 PM, Armand Turpel > <armand.turpel.mnhn@gmail.com> wrote: >> Hi, >> >> A few questions about jsonb and hstore: >> >> 1. does jsonb replace hstore? > > no, it's different data type > >> 2. compatibility of jsonb <> hstore? > > hstore is a simple key-value model, while jsonb - richer document-based model. > >> 3. will the development of hstore continue? > > I don't believe so, we froze nested hstore to concentrate development > resources to jsonb. Nested hstore still available from > http://www.sigaev.ru/git/gitweb.cgi?p=hstore.git;a=summary > It's should be compatible with 9.3 > > >> 4. is it recommended to use jsonb when planning new projects? > > yes, we are working on jsonb support. One major advantage of hstore over json/jsonb at the moment is data manipulation, which could make json/jsonb a non-starter for some. For example, in hstore one can do: -- remove a key/value pair by key UPDATE mytable SET hcolumn = hcolumn - 'mykey'::text; or: -- remove a key/value pair by key/value UPDATE mytable SET hcolumn = hcolumn - 'mykey=>myvalue'::hstore; or: -- add/replace a key/value pair UPDATE mytable SET hcolumn = hcolumn || 'newkey=>newvalue'::hstore; You can't do something like that with json/jsonb at the moment, and that's not going to be possible in the upcoming version either. You'd probably have to resort to application-side modification, or use something like pl/v8. -- Thom
We'll work on contrib/jsonxtra with all operators ported from hstore and release it after 9.4 as separate extension. On Fri, Apr 4, 2014 at 4:32 PM, Thom Brown <thom@linux.com> wrote: > On 4 April 2014 13:04, Oleg Bartunov <obartunov@gmail.com> wrote: >> On Fri, Apr 4, 2014 at 12:20 PM, Armand Turpel >> <armand.turpel.mnhn@gmail.com> wrote: >>> Hi, >>> >>> A few questions about jsonb and hstore: >>> >>> 1. does jsonb replace hstore? >> >> no, it's different data type >> >>> 2. compatibility of jsonb <> hstore? >> >> hstore is a simple key-value model, while jsonb - richer document-based model. >> >>> 3. will the development of hstore continue? >> >> I don't believe so, we froze nested hstore to concentrate development >> resources to jsonb. Nested hstore still available from >> http://www.sigaev.ru/git/gitweb.cgi?p=hstore.git;a=summary >> It's should be compatible with 9.3 >> >> >>> 4. is it recommended to use jsonb when planning new projects? >> >> yes, we are working on jsonb support. > > One major advantage of hstore over json/jsonb at the moment is data > manipulation, which could make json/jsonb a non-starter for some. > > For example, in hstore one can do: > > -- remove a key/value pair by key > UPDATE mytable SET hcolumn = hcolumn - 'mykey'::text; > > or: > > -- remove a key/value pair by key/value > UPDATE mytable SET hcolumn = hcolumn - 'mykey=>myvalue'::hstore; > > or: > > -- add/replace a key/value pair > UPDATE mytable SET hcolumn = hcolumn || 'newkey=>newvalue'::hstore; > > > You can't do something like that with json/jsonb at the moment, and > that's not going to be possible in the upcoming version either. You'd > probably have to resort to application-side modification, or use > something like pl/v8. > > -- > Thom
On 4 April 2014 16:15, Oleg Bartunov <obartunov@gmail.com> wrote: > We'll work on contrib/jsonxtra with all operators ported from hstore > and release it after 9.4 as separate extension. That would be useful. :) Would there be an aim of getting that in-core for 9.5? -- Thom
On Fri, Apr 4, 2014 at 7:17 PM, Thom Brown <thom@linux.com> wrote: > On 4 April 2014 16:15, Oleg Bartunov <obartunov@gmail.com> wrote: >> We'll work on contrib/jsonxtra with all operators ported from hstore >> and release it after 9.4 as separate extension. > > That would be useful. :) > > Would there be an aim of getting that in-core for 9.5? I hope so. > > -- > Thom