DBD::JDBC tasks


Finish implementing DBI interface methods
    * DBI->data_sources('JDBC')

      I actually don't think this can be implemented in any
      sensible fashion. It might make sense to add a
      driver-specific method to return available JDBC drivers
      (from jdbc.drivers).

    * The metadata methods $dbh->table_info, $dbh->tables,
      $dbh->type_info_all, and $dbh->type_info.

      These seem to map reasonably well to the JDBC
      DatabaseMetaData methods getTables() and
      getTypeInfo(). They're currently unimplemented due to time
      constraints. 

    * $sth->cancel
     
      What seems to make sense here is to have a separate
      listener thread in the server which can respond to cancel
      messages, since client threads will presumably be blocked
      at this point. The listener can keep a table of
      client threads and call the appropriate statement's cancel
      method. 

    * $sth->bind_param_inout

    * A client row cache.



Add driver-specific methods and attributes which provide access
to elements of the JDBC interface not otherwise exposed via
DBI. Currently, I'm thinking of trying to do this by adding a
generic "func" message which uses reflection to find an
appropriate method and call it. The advantage to this, if it
works, is that it ought to provide access to driver-specific
methods as well as JDBC interface methods.


Add support to the server for JDBC 2.0. This will only be useful
after the Perl side has support for calling JDBC-specific
functions.


Add some sort of streaming behavior for long fields.


It might be worth moving the test code which starts and stops a
server into the driver module as a utility, in case you want to
use this driver but don't want to run a server constantly. The
JDK 1.1 -classpath option bug is a pain here, since it makes it
difficult to start a Java application without setting the
CLASSPATH environment variable.


Possible server extensions: 
  add a thread pool to minimize connection time 
  add the ability to specify username/password
    values in the server configuration 
  per-client tracing
  inetd support (add a main to Connection)


Allow the username and password to be null, and call
DriverManager.getConnection(url) in that case.


