From: | Chris Travers <chris(at)2ndquadrant(dot)com> |
---|---|
To: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
Cc: | pgsql-hackers(at)postgresql(dot)org, Adam Jelinek <ajelinek(at)gmail(dot)com> |
Subject: | Re: 9.3 Json & Array's |
Date: | 2013-09-24 13:12:34 |
Message-ID: | 700181003.245711.1380028354522.open-xchange@email.1and1.co.uk |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> On 24 September 2013 at 13:46 Andrew Dunstan <andrew(at)dunslane(dot)net> wrote:
>
>
> Feel free to ask questions.
>
> The heart of the API is the event handlers defined in this stuct in
> include/utils/jsonapi.h:
>
> typedef struct JsonSemAction
> {
> void *semstate;
> json_struct_action object_start;
> json_struct_action object_end;
> json_struct_action array_start;
> json_struct_action array_end;
> json_ofield_action object_field_start;
> json_ofield_action object_field_end;
> json_aelem_action array_element_start;
> json_aelem_action array_element_end;
> json_scalar_action scalar;
> } JsonSemAction;
>
>
> Basically there is a handler for the start and end of each non-scalar
> structural element in JSON, plus a handler for scalars.
>
> There are several problems that will be posed by processing nested
> arrays and objects, including:
>
> * in effect you would need to construct a stack of state that could be
> pushed and popped
True.
> * JSON arrays aren't a very good match for SQL arrays - they are
> unidimensional and heterogenous.
This is true, but I think one would have to start with an assumption that the
data is valid for an SQL type and then check again once one gets it done.
JSON is a pretty flexible format which makes it a poor match in many cases
for SQL types generally. But I think the example so far (with
json_populate_recordset) is a good one, namely a best effort conversion.
>
>
> I'm not saying this can't be done - it will just take a bit of effort.
Yeah, looking through the code, I think it will be more work than I originally
thought but that just means it will take longer.
>
> cheers
>
> andrew
>
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
Best Wishes,
Chris Travers
http://www.2ndquadrant.com
PostgreSQL Services, Training, and Support
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2013-09-24 13:14:38 | Re: Reasoning behind LWLOCK_PADDED_SIZE/increase it to a full cacheline |
Previous Message | Stas Kelvich | 2013-09-24 13:07:52 | Re: [HACKERS] Cube extension point support // GSoC'13 |