Thread: Re: [HACKERS] postgres and Jdbc 2.0

Re: [HACKERS] postgres and Jdbc 2.0

From
Oliver Jowett
Date:
(moved to pgsql-jdbc)

chinni wrote:
> Hi All!
> Please note that the following functions are not implemented in the
> postgres driver
> even though they are a part of the JDBC 2.0 standard.
>
> Some of these may be party implemented, but may not be complete.

Check a current driver from jdbc.postgresql.org.

>     public void setFetchDirection(int direction) throws SQLException

Implemented already.

>     public boolean rowDeleted() throws SQLException
>     public boolean rowInserted() throws SQLException
>     public boolean rowUpdated() throws SQLException

Implemented already; you may not like the fact they always return false,
but this is accurate and consistent with what the database metadata
claims. The server does not provide a way to implement these in any
other way.

> Statement.java
>     public int getFetchDirection() throws SQLException
>     public void setFetchDirection(int direction) throws SQLException

Both implemented already.

>     public void registerOutParameter(int parameterIndex, int sqlType,
> String typeName) throws SQLException

The underlying server does not support out parameters. This is also why
the getXXX accessors on CallableStatement are not implemented.

> Array.java
>     public Object getArray(long index, int count, Map map) throws
> SQLException
>     public java.sql.ResultSet getResultSet(long index, int count,
> java.util.Map map) throws SQLException

How are you obtaining the Array implementation? It's an interface.

> There are a few things which I want to know.
>
> 1) Is there anything more which I am missing wrt JDBC 2.0 and postgres.

You need to test a more recent driver.

Many of the features you see as missing are actually just unsupported by
the underlying server -- it's not something you can fix in the driver. I
don't think that JDBC2 *requires* support for many of these features so
long as the database metadata is accurate about what it claims to support.

The fetch direction is a hint only -- you can't expect particular
behaviour. There are improvements to cursor support that could be done,
but they won't change the client-visible behaviour.

> 2)  If I want to add these features to JDBC driver, is there anything
> that has to go to                          database itself.

I don't understand the question.

-O

Re: [HACKERS] postgres and Jdbc 2.0

From
Oliver Jowett
Date:
Oliver Jowett wrote:

>>     public void registerOutParameter(int parameterIndex, int sqlType,
>> String typeName) throws SQLException
>
>
> The underlying server does not support out parameters. This is also why
> the getXXX accessors on CallableStatement are not implemented.

Sorry -- misinterpreted this one.

You can't have arbitary out parameters. You can have a single out return
parameter for a function call. I assumed you were trying for arbitary
out parameters.

The registerOutParameter() variant that takes a UDT typename is not
implemented as the driver does not support UDTs.

There's no obvious reason why the unimplemented getXXX() methods are
unimplemented (those that are implemented on ResultSet, at least)

-O

Re: [HACKERS] postgres and Jdbc 2.0

From
Dave Cramer
Date:
On Wed, 2004-08-04 at 18:49, Oliver Jowett wrote:
> Oliver Jowett wrote:
>
> >>     public void registerOutParameter(int parameterIndex, int sqlType,
> >> String typeName) throws SQLException
> >
this will be implemented shortly, but it will rely on a specific
function mechanism.

--dc--
>
> >
> > The underlying server does not support out parameters. This is also why
> > the getXXX accessors on CallableStatement are not implemented.
>
> Sorry -- misinterpreted this one.
>
> You can't have arbitary out parameters. You can have a single out return
> parameter for a function call. I assumed you were trying for arbitary
> out parameters.
>
> The registerOutParameter() variant that takes a UDT typename is not
> implemented as the driver does not support UDTs.
>
> There's no obvious reason why the unimplemented getXXX() methods are
> unimplemented (those that are implemented on ResultSet, at least)
>
> -O
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
>       subscribe-nomail command to majordomo@postgresql.org so that your
>       message can get through to the mailing list cleanly
>
--
Dave Cramer
519 939 0336
ICQ # 14675561