Re: I found a bug in the jdbc driver - Mailing list pgsql-jdbc

From Csaba Nagy
Subject Re: I found a bug in the jdbc driver
Date
Msg-id 1053938539.923.7.camel@coppola.ecircle.de
Whole thread Raw
In response to I found a bug in the jdbc driver  (innuendo-nh@libero.it <innuendo-nh@libero.it>)
Responses Re: I found a bug in the jdbc driver  (Dave Cramer <Dave@micro-automation.net>)
List pgsql-jdbc
Hi all,

Is the semicolon legal in SQL statements passed to the JDBC API ?
I'm asking this because I've had problems with semicolons with other
drivers too (e.g. Oracle).
OTOH, for the given problem, my opinion is that the driver should use
some meta data passed back from the server after the server executes the
query to find out what tables/fields were used (makes no sense to write
a JDBC-side parser, too high risk of getting out of sync against the
server's parser). I guess this is not supported by the current
communication protocol, but my point is to push this as a real solution.

Cheers,
Csaba.


On Thu, 2003-05-22 at 15:57, innuendo-nh@libero.it wrote:
> I have just found a bug in the latest jdbc driver.
>
> The error is in the class org.postgresql.jdbc2.AbstractJdbc2ResultSet
>
> the method parseQuery() has a bug:
>
> if you give as sql query something like "SELECT * FROM tablename;", that is a
> valid sql statement, and you try to use a resultset update method (like
> updateInt()),  you receive an SQLException saying: No Primary Keys. this is
> because the method parseQuery() make a too simplified use of the
> StringTokenizer, so the variable tableName is set at something like this:
> "tablename;". So when the isUpdateable() method request for the primary keys of
> the table 'tablename;', postgres answers there are no rows (it can't fond any
> primary key for the table because it doesn't exists). The problem can be
> resolved writing the sql statement very carefully: you must insert blanks
> between any part of the sql statement (operators, keywords, ecc.). In my example
> the solution is to insert a blank before the semicolon ("SELECT * FROM tablename
> ;").
>
> I think i can resolve the problem, modifying the driver, but i wuold be glad to
> know if someone else is already working at it now.
>
> I hope this can be useful.
>
> Inny.
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>



pgsql-jdbc by date:

Previous
From: Kris Jurka
Date:
Subject: Re: I found a bug in the jdbc driver
Next
From: Dave Cramer
Date:
Subject: Re: I found a bug in the jdbc driver