Thread: hstore - jsonb

hstore - jsonb

From
Armand Turpel
Date:
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


Re: hstore - jsonb

From
Oleg Bartunov
Date:
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


Re: hstore - jsonb

From
Thom Brown
Date:
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


Re: hstore - jsonb

From
Oleg Bartunov
Date:
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


Re: hstore - jsonb

From
Thom Brown
Date:
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


Re: hstore - jsonb

From
Oleg Bartunov
Date:
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