Re: BUG #4617: JDBC Drivers 8.2/8.3 return no ResultSet
От | Kris Jurka |
---|---|
Тема | Re: BUG #4617: JDBC Drivers 8.2/8.3 return no ResultSet |
Дата | |
Msg-id | Pine.BSO.4.64.0901161706370.32207@leary.csoft.net обсуждение исходный текст |
Ответ на | BUG #4617: JDBC Drivers 8.2/8.3 return no ResultSet ("Raymond L. Naseef" <naseef@egr.msu.edu>) |
Ответы |
Re: BUG #4617: JDBC Drivers 8.2/8.3 return no ResultSet
|
Список | pgsql-bugs |
On Thu, 15 Jan 2009, Raymond L. Naseef wrote: > > The following bug has been logged online: > > Bug reference: 4617 > PostgreSQL version: 8.3 & 7.4 > Operating system: FreeBSD > Description: JDBC Drivers 8.2/8.3 return no ResultSet > Details: > > Below is query using temporary table instead of "IN" to greatly improve > performance. This worked in older JDBC driver, but no longer does. The > following were checked, making no difference: > > RESULT: > org.postgresql.util.PSQLException: No results were returned by the query. > > > QUERY: > ------ > create temporary table lookup_username (username varchar) on commit drop; > insert into lookup_username values ('naseef'); > CREATE UNIQUE INDEX lookup_username_idx > ON lookup_username > USING btree > (username); > > SELECT enp.username, trim(enp.full_name) > FROM egr_nis_person as enp > JOIN lookup_username as lu > ON lu.username = enp.username > WHERE enp.start_date < now() + interval '30 seconds' > AND enp.end_date > now() + interval '30 seconds'; > What's happening here is that you are actually issuing four commands, not a single query. The newer drivers will return a status for each command executed, and won't just give you the final select result. For multi-command statements you should use Statement.execute() and then getResultSet or getUpdateCount until getMoreResults is false. Kris Jurka
В списке pgsql-bugs по дате отправления: