Good catch, go right ahead and fix it, please submit the fix as a
context diff
Thanks,
Dave
On Thu, 2003-05-22 at 09:57, =?iso-8859-1?Q?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
>
>
--
Dave Cramer <Dave@micro-automation.net>