Re: hstore - jsonb - Mailing list pgsql-general

From Thom Brown
Subject Re: hstore - jsonb
Date
Msg-id CAA-aLv7QqDrFngbrm0wJ31vhdXFZsGdkzDbM12i3NwiAZpkL-A@mail.gmail.com
Whole thread Raw
In response to Re: hstore - jsonb  (Oleg Bartunov <obartunov@gmail.com>)
Responses Re: hstore - jsonb  (Oleg Bartunov <obartunov@gmail.com>)
List 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


pgsql-general by date:

Previous
From: Tjibbe
Date:
Subject: Re: create temp view from function inside plpgsql function.
Next
From: Pavel Stehule
Date:
Subject: Re: create temp view from function inside plpgsql function.