Thread: Support for SQLInput / SQLOutput

Support for SQLInput / SQLOutput

From
Lukas Eder
Date:
Support for UDTs is one of the essential features in jOOQ (http://
jooq.sourceforge.net), a database interfacing library on top of JDBC.
JDBC expects client code to provide a type mapping in methods such as
ResultSet.getObject(int, Map), see also
http://download.oracle.com/javase/6/docs/api/java/sql/ResultSet.html#getObject(java.lang.String,%20java.util.Map)

Now this is currently not supported by the Postgres JDBC driver.
Instead, calls to ResultSet.getObject(int) are encouraged and a
org.postgresql.util.PGobject holding a serialised version of the UDT
record is returned.

In jOOQ, I don't want to create a dependency on this object. Instead,
I call #toString() on it and parse it using my PGobjectParser:
http://jooq.svn.sourceforge.net/viewvc/jooq/jOOQ/src/org/jooq/util/postgres/PGobjectParser.java?view=markup
(this might be a nice addition for the JDBC driver)

Now, I can see on the TODO list (http://jdbc.postgresql.org/
todo.html#Compliance), that proper SQLInput / SQLOutput support is
planned. My questions are these:

1. Has a timeline for this already been fixed?
2. Will the new JDBC driver be backwards-compatible? I.e. if no
mapping is provided to ResultSet#getObject(), will the driver still
return a PGobject?

Cheers
Lukas Eder

Re: Support for SQLInput / SQLOutput

From
Lukas Eder
Date:
I have an update on this issue. I think the PGobject has some flaws,
which I experienced when using it in combination with stored
functions. Check out this user group post I have added:
http://groups.google.com/group/pgsql.interfaces.jdbc/browse_thread/thread/58568fd0699b246f

Maybe, adding support for SQLData in the JDBC driver will resolve some
of these issues?

On 19 Dez. 2010, 14:46, Lukas Eder <lukas.e...@gmail.com> wrote:
> Support for UDTs is one of the essential features in jOOQ (http://
> jooq.sourceforge.net), a database interfacing library on top of JDBC.
> JDBC expects client code to provide a type mapping in methods such as
> ResultSet.getObject(int, Map), see alsohttp://download.oracle.com/javase/6/docs/api/java/sql/ResultSet.html#...)
>
> Now this is currently not supported by the Postgres JDBC driver.
> Instead, calls to ResultSet.getObject(int) are encouraged and a
> org.postgresql.util.PGobject holding a serialised version of the UDT
> record is returned.
>
> In jOOQ, I don't want to create a dependency on this object. Instead,
> I call #toString() on it and parse it using my
PGobjectParser:http://jooq.svn.sourceforge.net/viewvc/jooq/jOOQ/src/org/jooq/util/po...
> (this might be a nice addition for the JDBC driver)
>
> Now, I can see on the TODO list (http://jdbc.postgresql.org/
> todo.html#Compliance), that proper SQLInput / SQLOutput support is
> planned. My questions are these:
>
> 1. Has a timeline for this already been fixed?
> 2. Will the new JDBC driver be backwards-compatible? I.e. if no
> mapping is provided to ResultSet#getObject(), will the driver still
> return a PGobject?
>
> Cheers
> Lukas Eder