I agree with the best effort type of conversion, and only being able to
handle JSON array's that conform to an SQL array.  With that said I would
love to collaborate with you on this, but there is one thing holding me
back. The current company I work for (an insurance company) says it is a
conflict of interest so I have to be careful.  I can try to help out in
other ways if possible, and I will double check with our HR.


On Tue, Sep 24, 2013 at 8:12 AM, Chris Travers <ch...@2ndquadrant.com>wrote:

> **
>
>
> > On 24 September 2013 at 13:46 Andrew Dunstan <and...@dunslane.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@postgresql.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
>

Reply via email to