Re: SQLJSON - Mailing list pgsql-jdbc
From | Markus KARG |
---|---|
Subject | Re: SQLJSON |
Date | |
Msg-id | 000f01d0b0a8$9d73ca30$d85b5e90$@eu Whole thread Raw |
In response to | Re: SQLJSON (Steven Schlansker <stevenschlansker@gmail.com>) |
List | pgsql-jdbc |
Please read this regarding pluggability: https://json-processing-spec.java.net/nonav/releases/1.0/fcs/javadocs/javax/ json/spi/JsonProvider.html. Please read this regarding inability to agree on a standard: https://jcp.org/en/jsr/results?id=5486. The merits of adding a SQLJSON type to JDBC would be that in case an RDBMS might have some kind of special support for high-performance object-tree transmission in the network protocol (like lazy lookup and delayed transmission of child objects for example, or using binary transmission instead of JSONP plain-text), the driver could make use of that knowledge and work in the fastest and memory-saving way. That benefits are impossible to gain when using a character stream, as that requires to explicitly inflate to a full JSONP representation in-memory just to parse that string in turn in a second step. whether or not to support JSON is not up to the implementors of drivers, but up to the JDBC specification vendor. I doubt that with JSONP being a mandatory part of Java EE they will leave room for not providing JSONP in JDBC. We might be reluctant for now, but I believe that JDBC5 will enforce it. Regards -Markus -----Original Message----- From: pgsql-jdbc-owner@postgresql.org [mailto:pgsql-jdbc-owner@postgresql.org] On Behalf Of Steven Schlansker Sent: Freitag, 26. Juni 2015 19:29 To: Dave Cramer Cc: List Subject: Re: [JDBC] SQLJSON On Jun 26, 2015, at 10:23 AM, Dave Cramer <davecramer@gmail.com> wrote: > > On 26 June 2015 at 13:01, Steven Schlansker <stevenschlansker@gmail.com> wrote: > > On Jun 26, 2015, at 7:57 AM, Dave Cramer <davecramer@gmail.com> wrote: > > > I'm looking for comments on how to implement a SQLJSON type in JDBC. > > > > As there is no getSQLJSON in the resultset interface this could only be used in getObject. > > > > Notionally it would model itself after SQLXML. > > https://docs.oracle.com/javase/7/docs/api/index.html?java/sql/SQLXML > > .html > > I used JSON extensively in one of my projects, but have never used SQLXML. I'm having trouble understanding why the SQLXML interface adds any value to passing rs.getBinaryStream to your favorite JSON parser. Especially since you would have to use getObject, I am not seeing how: > > rs.getObject("field", SQLJSON.class).mapToType(MyType.class) > > is simpler than: > jacksonObjectMapper.readValue(rs.getBinaryStream("field"), > MyType.class) > > which already works today as far as I understand. Doubly so since nobody will agree on which JSON parsing library to use. > > I'm sure I'm missing something? > > > I don't think you are; as you rightly pointed out now we would have to > add a json parser to the driver, which I'm reluctant to do > If this feature is developed, I think the JSON parser should be pluggable and optional if possible. Then users that do not want it do not need to drag in a large dependency. That said, without a more convincing use case or a compelling API that we could easily add, I don't see this interface being "worth its weight" as an addition. -- Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-jdbc
pgsql-jdbc by date: