Re: Add ZSON extension to /contrib/ - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: Add ZSON extension to /contrib/
Date
Msg-id 4aca1d4c-aa07-c168-bcca-236ec9f04c8d@dunslane.net
Whole thread Raw
In response to Re: Add ZSON extension to /contrib/  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Add ZSON extension to /contrib/
List pgsql-hackers
On 5/25/21 4:10 PM, Tom Lane wrote:
> Magnus Hagander <magnus@hagander.net> writes:
>> On Tue, May 25, 2021 at 12:55 PM Aleksander Alekseev
>> <aleksander@timescale.com> wrote:
>>> Back in 2016 while being at PostgresPro I developed the ZSON extension [1]. The extension introduces the new ZSON
type,which is 100% compatible with JSONB but uses a shared dictionary of strings most frequently used in given JSONB
documentsfor compression.
 
>> If the extension is mature enough, why make it an extension in
>> contrib, and not instead either enhance the existing jsonb type with
>> it or make it a built-in type?
> IMO we have too d*mn many JSON types already.  If we can find a way
> to shoehorn this optimization into JSONB, that'd be great.  Otherwise
> I do not think it's worth the added user confusion.
>
> Also, even if ZSON was "100% compatible with JSONB" back in 2016,
> a whole lot of features have been added since then.  Having to
> duplicate all that code again for a different data type is not
> something I want to see us doing.  So that's an independent reason
> for wanting to hide this under the existing type not make a new one.



I take your point. However, there isn't really any duplication. It's
handled by this:


    CREATE FUNCTION jsonb_to_zson(jsonb)
        RETURNS zson
        AS 'MODULE_PATHNAME'
        LANGUAGE C STRICT IMMUTABLE;

    CREATE FUNCTION zson_to_jsonb(zson)
        RETURNS jsonb
        AS 'MODULE_PATHNAME'
        LANGUAGE C STRICT IMMUTABLE;

    CREATE CAST (jsonb AS zson) WITH FUNCTION jsonb_to_zson(jsonb) AS
    ASSIGNMENT;
    CREATE CAST (zson AS jsonb) WITH FUNCTION zson_to_jsonb(zson) AS
    IMPLICIT;


cheers


andrew


-- 

Andrew Dunstan
EDB: https://www.enterprisedb.com




pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: CALL versus procedures with output-only arguments
Next
From: Stephen Frost
Date:
Subject: Re: storing an explicit nonce