On Wednesday 17 November 2004 15:25, Oliver Jowett wrote:
> Did you get any useful test results from the non-EJB modes? Anything
> the driver does wrong there?
No, I didn't see any cases where the blame could be pegged squarely on
the driver, except the testSupportsStoredProcedures test.
If I run the test with this exclusion list:
http://java.sun.com/products/jdbc/exclude.1.2.1.txt?button=Download
I get 18 failures out of 548 tests.  One of them is
  testSupportsStoredProcedures
This fails because in
org/postgresql/jdbc2/AbstractJdbc2DatabaseMetaData.java, we have
     public boolean supportsStoredProcedures() throws SQLException
     {
         return false;
     }
whereas the test harness expects this method to return true.
One other failure looks like a bug in the harness.  Specifically,
   testGetSQLState
fails because this condition
  b.getSQLState() instanceof java.lang.String
tests false, where b is a SQLException.  Now, the only way this can
possibly happen is if getSQLState() returns null.  Looking at the
javadoc
http://java.sun.com/j2se/1.4.2/docs/api/java/sql/SQLException.html#getSQLState%28%29
I don't see anything that says the method is not allowed to return
null.  Looks like a bug in the CTS.
The remaining 16 failures are all due to the same reason.  The backend
chokes on the following query (or some variation thereof):
  | DB1=> select substring(version(), 1, 20) as version;
  |        version
  | ----------------------
  |  PostgreSQL 7.3.4-RH
  | (1 row)
  | DB1=> create table Real_Tab (MAX_VAL REAL, MIN_VAL REAL,NULL_VAL REAL);
  | CREATE TABLE
  | DB1=> insert into Real_Tab values(3.4E38,1.4E-45, null);
  | ERROR:  Bad float4 input format -- underflow
The funny part is that I can do
  | DB1=> select 1.4E-45;
  |                      ?column?
  | --------------------------------------------------
  |  0.0000000000000000000000000000000000000000000014
  | (1 row)
  | DB1=> select 3.4E38;
  |                 ?column?
  | -----------------------------------------
  |  340000000000000000000000000000000000000
  | (1 row)
But I would have to test this against a more recent version of the
backend.  In any case, these 16 failures don't be seem to be caused
by the driver.
Vadim