Re: I found a bug in the jdbc driver
От | Dave Cramer |
---|---|
Тема | Re: I found a bug in the jdbc driver |
Дата | |
Msg-id | 1053915597.1045.250.camel@inspiron.cramers обсуждение исходный текст |
Ответ на | I found a bug in the jdbc driver (innuendo-nh@libero.it <innuendo-nh@libero.it>) |
Список | pgsql-jdbc |
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>
В списке pgsql-jdbc по дате отправления: