Re: [HACKERS] postgres and Jdbc 2.0

Lists: pgsql-hackerspgsql-jdbc
From: chinni <naveen(dot)bysani(at)gmail(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: postgres and Jdbc 2.0
Date: 2004-08-04 14:20:09
Message-ID: e6f02b1404080407204beb3f45@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers pgsql-jdbc

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.

<differences>
Blob.java
public long position(byte[] pattern, long start) throws SQLException

Clob.java
public long position(String pattern, long start) throws SQLException
public long position(Clob pattern, long start) throws SQLException

Connection.java
public Object getObject(String type, String value) throws SQLException

DatabaseMetaData.java
public java.sql.ResultSet getUDTs(String catalog,String
schemaPattern,String typeNamePattern,int[] types) throws SQLException

ResultSet.java
public Object getObject(int i, java.util.Map map) throws SQLException
public Ref getRef(int i) throws SQLException
public void setFetchDirection(int direction) throws SQLException
public boolean rowDeleted() throws SQLException
public boolean rowInserted() throws SQLException
public boolean rowUpdated() throws SQLException

Statement.java
public int getFetchDirection() throws SQLException
public void setFetchDirection(int direction) throws SQLException
public void setRef(int i, Ref x) throws SQLException
public Blob getBlob(int i) throws SQLException
public Clob getClob(int i) throws SQLException
public Object getObject(int i, java.util.Map map) throws SQLException
public Ref getRef(int i) throws SQLException
public java.sql.Date getDate(int i, java.util.Calendar cal) throws
SQLException
public Time getTime(int i, java.util.Calendar cal) throws SQLException
public Timestamp getTimestamp(int i, java.util.Calendar cal) throws
SQLException
public void registerOutParameter(int parameterIndex, int sqlType,
String typeName) throws SQLException
public java.sql.Array getArray(int i) throws SQLException

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

</differences>

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.

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

thanks
naveen


--
"Stand for something, or you will fall for nothing."


From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: chinni <naveen(dot)bysani(at)gmail(dot)com>
Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: postgres and Jdbc 2.0
Date: 2004-08-04 14:43:30
Message-ID: 1091630609.2056.46.camel@localhost.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers pgsql-jdbc

First, there is a list for the jdbc driver.

Second, which version are you using?

I know some of these are implemented already.

getUDT's, setFetchDirection, gettime, ...

Dave
On Wed, 2004-08-04 at 10:20, 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.
>
> <differences>
> Blob.java
> public long position(byte[] pattern, long start) throws SQLException
>
> Clob.java
> public long position(String pattern, long start) throws SQLException
> public long position(Clob pattern, long start) throws SQLException
>
> Connection.java
> public Object getObject(String type, String value) throws SQLException
>
> DatabaseMetaData.java
> public java.sql.ResultSet getUDTs(String catalog,String
> schemaPattern,String typeNamePattern,int[] types) throws SQLException
>
> ResultSet.java
> public Object getObject(int i, java.util.Map map) throws SQLException
> public Ref getRef(int i) throws SQLException
> public void setFetchDirection(int direction) throws SQLException
> public boolean rowDeleted() throws SQLException
> public boolean rowInserted() throws SQLException
> public boolean rowUpdated() throws SQLException
>
> Statement.java
> public int getFetchDirection() throws SQLException
> public void setFetchDirection(int direction) throws SQLException
> public void setRef(int i, Ref x) throws SQLException
> public Blob getBlob(int i) throws SQLException
> public Clob getClob(int i) throws SQLException
> public Object getObject(int i, java.util.Map map) throws SQLException
> public Ref getRef(int i) throws SQLException
> public java.sql.Date getDate(int i, java.util.Calendar cal) throws
> SQLException
> public Time getTime(int i, java.util.Calendar cal) throws SQLException
> public Timestamp getTimestamp(int i, java.util.Calendar cal) throws
> SQLException
> public void registerOutParameter(int parameterIndex, int sqlType,
> String typeName) throws SQLException
> public java.sql.Array getArray(int i) throws SQLException
>
> 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
>
> </differences>
>
> 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.
>
> 2) If I want to add these features to JDBC driver, is there anything
> that has to go to database itself.
>
>
> thanks
> naveen
>
>
--
Dave Cramer
519 939 0336
ICQ # 14675561


From: Kris Jurka <books(at)ejurka(dot)com>
To: chinni <naveen(dot)bysani(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: postgres and Jdbc 2.0
Date: 2004-08-04 18:47:22
Message-ID: Pine.BSO.4.56.0408041338360.6814@leary.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers pgsql-jdbc

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

Generally JDBC questions are best discussed on the
pgsql-jdbc(at)postgresql(dot)org list. First make sure you are working with the
latest source code available from
http://gborg.postgresql.org/project/pgjdbc/projdisplay.php which as
Dave mentioned has implemented some of these methods already. As to
whether anything needs to be added to the server, that depends on your
implementation. The Blob/Clob positioning seems like it could be done
more efficiently on the server side. Also the server doesn't have a Ref
datatype, so you really can't implement get/setRef without it.

Kris Jurka


From: Oliver Jowett <oliver(at)opencloud(dot)com>
To: chinni <naveen(dot)bysani(at)gmail(dot)com>
Cc: "pgsql-jdbc(at)postgresql(dot)org" <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: [HACKERS] postgres and Jdbc 2.0
Date: 2004-08-04 22:38:14
Message-ID: 41116556.3040801@opencloud.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers pgsql-jdbc

(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


From: Oliver Jowett <oliver(at)opencloud(dot)com>
To: chinni <naveen(dot)bysani(at)gmail(dot)com>
Cc: "pgsql-jdbc(at)postgresql(dot)org" <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: [HACKERS] postgres and Jdbc 2.0
Date: 2004-08-04 22:49:07
Message-ID: 411167E3.8040407@opencloud.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers pgsql-jdbc

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


From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: Oliver Jowett <oliver(at)opencloud(dot)com>
Cc: chinni <naveen(dot)bysani(at)gmail(dot)com>, "pgsql-jdbc(at)postgresql(dot)org" <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: [HACKERS] postgres and Jdbc 2.0
Date: 2004-08-05 01:22:59
Message-ID: 1091668979.3328.63.camel@localhost.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers pgsql-jdbc


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(at)postgresql(dot)org so that your
> message can get through to the mailing list cleanly
>
--
Dave Cramer
519 939 0336
ICQ # 14675561