Re: additional json functionality - Mailing list pgsql-hackers

From Josh Berkus
Subject Re: additional json functionality
Date
Msg-id 528BA716.9060809@agliodbs.com
Whole thread Raw
In response to additional json functionality  (Andrew Dunstan <andrew@dunslane.net>)
Responses Re: additional json functionality  (Robert Haas <robertmhaas@gmail.com>)
Re: additional json functionality  (Andrew Dunstan <andrew@dunslane.net>)
Re: additional json functionality  (Merlin Moncure <mmoncure@gmail.com>)
List pgsql-hackers
On 11/19/2013 08:14 AM, Robert Haas wrote:
> On Thu, Nov 14, 2013 at 2:54 PM, Hannu Krosing <hannu@2ndquadrant.com> wrote:
>> I am sure you could also devise an json encoding scheme
>> where white space is significant ;)
> 
> I don't even have to think hard.  If you want your JSON to be
> human-readable, it's entirely possible that you want it stored using
> the same whitespace that was present on input.  There is a valid use
> case for normalizing whitespace, too, of course.

Given that JSON is a data interchange format, I suspect that there are
an extremely large combination of factors which would result in an
unimplementably large number of parser settings.  For example, I
personally would have use for a type which allowed the storage of JSON
*fragments*.  Therefore I am interested only in supporting two:

a) the legacy behavior from 9.2 and 9.3 so we don't destroy people's
apps, and

b) the optimal behavior for Hstore2/JSONB.

(a) is defined as:* complete documents only (no fragments)* whitespace not significant* no reordering of keys*
duplicatekeys allowed
 

(b) is defined as:* complete documents only (no fragments)* whitespace not significant* reordering of keys* duplicate
keysprohibited    
 

If people want other manglings of JSON, they can use TEXT fields and
custom parsers written in PL/v8, the same way I do.

-- 
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com



pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: Data corruption issues using streaming replication on 9.0.14/9.2.5/9.3.1
Next
From: Josh Berkus
Date:
Subject: Re: More legacy code: pg_ctl