Re: patch: Add JSON datatype to PostgreSQL (GSoC, WIP)

Bruce Momjian <bruce@momjian.us>

From: Bruce Momjian <bruce@momjian.us>
To: Itagaki Takahiro <itagaki.takahiro@gmail.com>
Cc: Joseph Adams <joeyadams3.14159@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2010-09-18T02:33:55Z
Lists: pgsql-hackers
Itagaki Takahiro wrote:
> On Sat, Sep 18, 2010 at 6:45 AM, Joseph Adams
> <joeyadams3.14159@gmail.com> wrote:
> >>  Why do we need to store the value in UTF8 encoding?
> >
> >  because the JSON code needs to handle Unicode escapes like
> > "\u266B", but there is no simple and efficient way (that I know of) to
> > convert single characters to/from the server encoding.
> 
> Ah, we don't need UTF8 encoding only to store JSON data, but we should
> care about Unicode escape when we support comparison and extracting
> values from JSON, right? I see the worth encoding to UTF8.
> 
> One of my proposal is we don't have to keep the original input text.
> We store JSON data in effective internal formats. If users want to get
> human-readable output, they can use stringify() with indentation option.
> 
> > I think your patch is on a better footing than mine, so maybe I should
> > start contributing to your code rather than the other way around.
> > Before the next commitfest, I could merge the testcases from my patch
> > in and identify parsing discrepancies (if any). ?Afterward, I could
> > help merge the other features into the new JSON infrastructure.
> 
> Thanks! I'll contribute my codes developed for another project
> (PL/JavaScript), and let's merge our codes to the core.
> 
> > I can't compile your initial patch against the latest checkout because
> > json_parser.h and json_scanner.h are missing.
> 
> Hmm, those files should be generated from .y and .l files. I'll check it.

I am please the two efforts can be joined.  I like the idea of
PL/JavaScript too.

-- 
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +