Re: Why?? executeQuery() & exception: "No results were returned by the query." - Mailing list pgsql-jdbc

From Bruce Momjian
Subject Re: Why?? executeQuery() & exception: "No results were returned by the query."
Date
Msg-id 200105081932.f48JWJ824950@candle.pha.pa.us
Whole thread Raw
In response to Why?? executeQuery() & exception: "No results were returned by the query."  (Panu Outinen <panu@vertex.fi>)
Responses Re: Why?? executeQuery() & exception: "No results were returned by the query."  (Panu Outinen <panu@vertex.fi>)
Re: Why?? executeQuery() & exception: "No results were returnedby the query."  ("Jeff Duffy" <jeff@alanne.com>)
List pgsql-jdbc
Are you saying that this "no result" error is required by the JDBC
standard, or is it a PostgreSQL bug?


> Hi there !
>
> Can anyone explain why does executeQuery() throws an exception
> "No results were returned by the query."
> when result set is empty ???????
>
> In my opinion (and also e.g. Oracle's JDBC driver's opinion) that this is
> just normal and user can check the number of rows (=0) that none was
> returned. It's totally different to make a query where something is wrong
> in the query itself e.g. non-existant column is used or perhaps in the
> database connection!
>
> This is "pain in the *ss" to test against in one's code for every different
> JDBC driver's DIFFERENT return string there available and it's impossible
> to do code that works for even unknown drivers. And Postgresql has even
> language dependant versions of this !!!
>
> Since Postgresql source code is so nicely publicly available (thank you all
> there!) and thus improvements are easily given by anyone I just wonder if
> this could be improved, please !!!
>
>    - Panu
>
> PS. I know for sure that at least SQL Server throws the following when used
> through JDBC-ODBC bridge: "No ResultSet was produced".
>
>
> ----------------------------------------------------------------------
>
> org\postgresql\jdbc2\Statement.java:
>
> ...
>     /**
>      * Execute a SQL statement that retruns a single ResultSet
>      *
>      * @param sql typically a static SQL SELECT statement
>      * @return a ResulSet that contains the data produced by the query
>      * @exception SQLException if a database access error occurs
>      */
>     public java.sql.ResultSet executeQuery(String sql) throws SQLException
>     {
>         this.execute(sql);
>         while (result != null &&
> !((org.postgresql.ResultSet)result).reallyResultSet())
>         result = ((org.postgresql.ResultSet)result).getNext();
>         if (result == null)
>         throw new PSQLException("postgresql.stat.noresult");
>         return result;
>     }
> ...
>
> ----------------------------------------------------------------------
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

pgsql-jdbc by date:

Previous
From: Brian_Williams@i2.com
Date:
Subject: "No results" exception on insert
Next
From: Bruce Momjian
Date:
Subject: Outstanding patches