From: | Peter Geoghegan <pg(at)heroku(dot)com> |
---|---|
To: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: jsonb status |
Date: | 2014-03-16 08:10:32 |
Message-ID: | CAM3SWZRUjV28_vKUe17gzZJVG-11Dv5e7mSyGVtgPwv_q5Ytvw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Mar 13, 2014 at 2:00 PM, Andrew Dunstan <andrew(at)dunslane(dot)net> wrote:
> I'll be travelling a good bit of tomorrow (Friday), but I hope Peter has
> finished by the time I am back on deck late tomorrow and that I am able to
> commit this on Saturday.
I asked Andrew to hold off on committing this today. It was agreed
that we weren't quite ready, because there were one or two remaining
bugs (since fixed), but also because I felt that it would be useful to
first hear the opinions of more people before proceeding. I think that
we're not that far from having something committed. Obviously I hope
to get this into 9.4, and attach a lot of strategic importance to
having the feature, which is why I made a large effort to help land
it.
Attached patch has a number of notable revisions. Throughout, it has
been possible for anyone to follow our progress here:
https://github.com/feodor/postgres/commits/jsonb_and_hstore
* In general, the file jsonb_support.c (renamed to jsonb_utils.c) is
vastly better commented, and has a much clearer structure. This was
not something I did much with in the previous revision, and so it has
been a definite focus of this one.
* Hashing is refactored to not use CRC32 anymore. I felt this was a
questionable method of hashing, both within jsonb_hash(), as well as
the jsonb_hash_ops GIN operator class.
* Dead code elimination.
* I got around to fixing the memory leaks in B-Tree support function one.
* Andrew added hstore_to_jsonb, hstore_to_jsonb_loose functions and a
cast. One goal of this effort is to preserve a parallel set of
facilities for the json and jsonb types, and that includes
hstore-related features.
* A fix from Alexander for the jsonb_hash_ops @>operator issue I
complained about during the last submission was merged.
* There is no longer any GiST opclass. That just leaves B-Tree, hash,
GIN (default) and GIN jsonb_hash_ops opclasses.
My outstanding concerns are:
* Have we got things right with GIN indexing, containment semantics,
etc? See my remarks in the patch, by grepping "contain" within
jsonb_util.c. Is the GIN text storage serialization format appropriate
and correct?
* General design concerns. By far the largest source of these is the
file jsonb_util.c.
* Is the on-disk format that we propose to tie Postgres to as good as
it could be?
--
Peter Geoghegan
Attachment | Content-Type | Size |
---|---|---|
jsonb-11.patch.gz | application/x-gzip | 80.1 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Erik Rijkers | 2014-03-16 08:28:46 | Re: jsonb status |
Previous Message | Brendan Jurd | 2014-03-16 04:56:06 | Re: Minimum supported version of Python? |