Thread: RE: [INTERFACES] JDBC next() method

RE: [INTERFACES] JDBC next() method

From
Jon Barnett
Date:
On Tuesday, 20 April 1999 1:35, Herouth Maoz [SMTP:herouth@oumail.openu.ac.il]
wrote:
> At 15:57 +0300 on 14/04/1999, Jon Barnett wrote:
>
>
> > I had expected that an empty result set would be
> > returned if the history table is empty (0 rows returned for the select),
> > and
> > queryResult.next() would be false.  Is this an incorrect interpretation
> >on my
> > part?
>
> It is. In PostgreSQL, when an aggregate function is used, it always returns
> one row containing one field. If it had no values that matched the query,
> that one field is NULL.

The question is less one of "what is required to correctly interpret the result
from the postgresql jdbc driver" and more a case of determining whether this
result conforms to the jdbc api definitions.  To re-phrase this; if I employed
a different JDBC driver, would I obtain the same result? For after all, the
goal of the JDBC layer is to provide a consistent interface, independent of the
database to which you are connecting, particularly when you can late bind the
driver (specify the driver you want to use at run-time).

Best regards,

Jon.

RE: [INTERFACES] JDBC next() method

From
herouth maoz
Date:
On Sat, 24 Apr 1999, Jon Barnett wrote:

> The question is less one of "what is required to correctly interpret the result
> from the postgresql jdbc driver" and more a case of determining whether this
> result conforms to the jdbc api definitions.To re-phrase this; if I employed
> a different JDBC driver, would I obtain the same result? For after all, the
> goal of the JDBC layer is to provide a consistent interface, independent of the
> database to which you are connecting, particularly when you can late bind the
> driver (specify the driver you want to use at run-time).

The question here is not on the JDBC level. As far as JDBC is concerned,
the behaviour of the posgresql JDBC driver is conformant: In case no rows
are returned, next() will return false upon first call. In case a row is
returned, which contains a null value, next() will return true, the value
of the field is 0, and you test it for null otherwise.

No, the question is whether Postgres's behaviour - of returning a row with
a null field in case no rows fell into the WHERE category - is compatible
with other databases, or indeed with the SQL standard. I don't have the
standard in front of me at this moment. But you must understand that this
is how PostgreSQL behaves, no matter whether your frontend is in Java,
python, perl or C. It's not a question of JDBC.

Herouth