Please send bug reports to freetds-jdbc-bugs@internetcds.com

There are a couple of problems compiling this code with recent
versions of jikes.

(Fixed) It appears that if you close a Connection then try
to use that connection the exception thrown is not very informative.

There should be a finalize() method for the TdsConnection class.
(Note-  With JDBC you can't rely on a finalize method to close the
database connections.  The JVM does not guarantee when the finalize
method will be called.  It could be as soon as the object is has no
more reference, or it could be months from now.)

Query cancels and timeouts don't work for Sybase.  They do work for
SQLServer.

Port number must be specified numerically.  Symbolic port names aren't
supported yet.

Doesn't handle TDS_DONEINPROC packets correctly.  Demonstrated by
t0032.java.

Race condition between TdsComm.peek() and TdsComm.getByte().  Methods
in TdsComm that access the inBuffer and inBufferIndex need to be
synchronized on inBuffer.  Note- The methods in the TdsComm class
can't be synchronized because the cancel thread needs to be able to
send cancel requests even if another thread is waiting in
TdsComm.getByte() for database results.

PreparedStatements aren't working very well for Sybase yet.

(Fixed) The driver isn't properly handling timezone issues for Timestamp
columns.  Demonstrated by t0001.java.

DatabaseMetaData.getColumns() and DatabaseMetaData.getTables() 
create global temporary tables that they never clean up.

Although the overall design of creating and accessing TDS streams
takes multithreadedness into account, some of the individual methods
in the higher lever classes still need to be 'synchronized'.  At this
time the driver should not be considered thread safe.  This shouldn't
be too difficult to fix.

PreparedStatement.setString() method fails if the string is more than
255 characters long.  Demonstrated by t0021.java

PreparedStatement.setBytes() fails if the destination column is
BINARY.  The stored procedure that is created should have a formal
parameter of type VARBINARY if the length of the byte array is < 256.
Demonstrated by t0021.java

Doesn't handle 'compute' clauses yet.  Demonstrated by t0026.java

Not really a bug, but I need someway of generating the dependencies in
the makefile.  Maintaining those by hand is not fun.  Need to look at
using jikes for that.

(fixed) IBM's Data Access Beans aren't happy with the type information they
get back from the ResultSetMetaData class.  It seems that we are
converting SMALLINT to INT and IBM thinks that isn't the proper
behavior.  They are probably right.

