Thread: JDBC Update

JDBC Update

From
Peter T Mount
Date:
I've just posted to the patches list the update for the JDBC driver ready
for the beta.

The only thing that still needs work on before 6.4 is the new Object
serialisation code, but as that's been in the driver for a couple of
months now, I can finish it off while we are in beta ;-)

I've run out of time for the lo orphaning problem (for 6.4), so that will
have to go into 6.4.1

Here's what's in the patch:

    - Created ChangeLog file, and entered stuff done since 6.3.2 and today
    - Change version number to 6.4 in Driver.java
    - Added fix to DatabaseMetaData.getTables() submitted by
      Stefan Andreasen <stefan@linux.kapow.dk>
    - Added fix to DatabaseMetaData.getColumns() to handle patterns
      submitted by Stefan Andreasen <stefan@linux.kapow.dk>
    - Set TcpNoDelay on the connection, as this gives us a 10x speed
      improvement on FreeBSD (caused by a bug in their TCP Stack). They
      should fix the bug before 6.4 is released, but will keep this
      in here unless it causes more problems.
      Submitted by Jason Venner <jason@idiom.com>
    - Removed a duplicate definition of fieldCache
    - Added a more meaningful message when the connection is refused. It
      now says:
        Connection refused. Check that the hostname and port is
        correct, and that the postmaster is running with the -i flag,
        which enables TCP/IP networking.
    - Removed kludge in PreparedStatement.setDate() that acted as a
      temporary fix to a bug in SimpleDateFormat, as it broke date
      handling in JDK 1.1.6.
    - Modified PG_Stream and Connection, so that outbound data is now
      buffered. This should give us a speed improvement, and reduce the
      ammount of network packets generated.
    - Removed duplicate code and optimised PG_Stream.
    - PG_Stream now returns a more meaningful message when the connection
      is broken by the backend. It now returns:
        The backend has broken the connection. Possibly the action you
        have attempted has caused it to close.
    - Removed obsolete code from Connection.
    - The error message returned when the authentication scheme is unknown
      has been extended. It now reads:
        Authentication type ### not supported. Check that you have
        configured the pg_hba.conf file to include the client's IP
        address or Subnet, and is using a supported authentication
        scheme.
    - Connection.getMetaData() now caches the instance returned, so
      multiple calls will return the same instance.
    - Created a test application that tests the DatabaseMetaData and
      ResultSetMetaData classes.
    - Replaced getString(#).getBytes() with getBytes(#) which should speed
      things up, and reduce memory useage.
    - Optimised DatabaseMetaData.getProcedures(), and implemented patterns
    - Fixed NullPointerExceptions thrown when a field is null (Internal
      to the driver, not caused by results from the backend.
      DatabaseMetaData.getProcedures() is an example of a method that
      causes this):
        - ResultSetMetaData.getColumnName() now returns field# where
          # is the column name.
        - ResultSet.getObject() fixed
        - Fixed bug in psql example that was affected by null fields
        - DatabaseMetaData.getTables()
    - DatabaseMetaData.getPrimaryKeys() ran a query with an ambiguous field
      fixed.
    - getTypeInfo() optimised to increase speed and reduce memory useage
    - ResultSetMetaData.isCurrency() optimised and is now smaller.
    - Removed unnecessary code fromResultSetMetaData.getCatalogName()
      and getSchemaName().
    - Created new class postgresql.util.PGmoney to map the money type
    - Created new class postgresql.geometric.PGline to map the line type

Just one or too items ;-)

--
       Peter T Mount peter@retep.org.uk
      Main Homepage: http://www.retep.org.uk
PostgreSQL JDBC Faq: http://www.retep.org.uk/postgres
 Java PDF Generator: http://www.retep.org.uk/pdf