This list is ordered top-to-bottom by priority.  
Things that are broken and need mending are at the top, 
followed by things that should work before the next release, 
followed by features that should be added/fixed/reworked (grouped by library).  

Everyone is encouraged to add to the list.  Developers can do it directly; 
anyone else can post a patch to Source Forge.  
In this way we can communicate with each
other about the project's priorities and needs.  

To Do List	$Id: TODO,v 1.38 2003/01/28 14:28:49 freddy77 Exp $
------------
Broken:

For 0.61 version:

For 0.62 version:
. Move website docs (not UG) to doc/htdoc, put in CVS
. add doc/htdoc/Makefile with "publish" target to commit cvs and update freetds.org
. drop txt2man from cvs, skip building man pages without it. 
. Add doxygen to the nightly build
. "make install" should put the UG in PREFIX/share/doc/freetds/userguide
. "make install" should put doxygen html in PREFIX/share/doc/freetds/reference
. Rename TDS 8.0 to TDS 7.1, to be consistent with Microsoft's name
. Rationalize libtds structure and *_alloc functions (ML 5 December, sb:"names")
. ct_dynamic and friends needed for DBD::Sybase placeholder support (work in progress)

For future versions (in priority order within library):
  All:
. move error message macro/prototype to tds.h.in; use in dblib.c.
. Remove old char(30) limitations to various sysnames e.g., tables, columns, passwords (checks).  Is this done?  
. Add missing constants needed for python and verify working
. Add missing constants needed for Gnome-DB and verify working 
. conversion from ucs2 to utf8, provide for 2+ bytes/character.
. Autodetect TDS protocol when connecting (and cache somewhere?)
. support for VARIANT type
. tdsping program for testing purposes
. Finish off the TDS dissector for ethereal
. more solid. handle out of memory conditions (started, we must test all allocation and all function that return allocated data and be able to rollback to a safe state)
. optimize numeric conversions 
. limit copy of data (now wire -> tds -> temp -> client)
. All manner of unimplemented functions (see doc/api_status.txt)
. cursor support
. tds_connect free tds structure on failure. This cause in some condition
  a pointer to garbage in some library (workaround written, best to change)

  ct-lib
. cs_calc and cs_cmp, for sybperl
. DBD::Sybase uses the ct_command(CS_RPC_CMD) and ct_param()
. ct_get/send_data()
. ct_option() calls (CS_OPT_ROWCOUNT, CS_OPT_TEXTSIZE, among others)
. Array binding for ctlib not working
. async function, async calls (dbpoll() and friends)
. bcp support to ctlib
. support all type of bind in ct_bind (CS_VARBINARY_TYPE and other)
  search "site:.sybase.com CS_VARBINARY ct_bind" on google for more info
. support ct_command/CS_SEND_DATA_CMD, now crash
  (see http://manuals.sybase.com/onlinebooks/group-cn/cng1000e/ref/@Generic__BookTextView/50456)
. support ct_diag (for Python)
. complete sqlstate and other field in message (for Python)

  odbc
. Someone broke early binding in ODBC 
  (fixed, add check for early bind, and multiple recordset)
. dynamic query (need rewrite SQLPrepare and related) (support binding parameters for all types)
. improve, best error report (finish and test, see error.c FIXME and TODO)
. cursor support
. how work mssql driver using SQLMoreResults/SQLRowCount and batch like 
  SELECT INSERT INSERT SELECT ?
. Star Office complains that these TypeInfo constants are not implemented in SQLGetInfo:
	16      SQL_DATABASE_NAME
	23      SQL_CURSOR_COMMIT_BEHAVIOR
	29      SQL_IDENTIFIER_QUOTE_CHAR
	47      SQL_USER_NAME
	91      SQL_SCHEMA_USAGE/SQL_OWNER_USAGE
	92      SQL_CATALOG_USAGE/SQL_QUALIFIER_USAGE
	93      SQL_QUOTED_IDENTIFIER_CASE
	94      SQL_SPECIAL_CHARACTERS
	111     SQL_NEED_LONG_DATA_LEN
	150     SQL_KEYSET_CURSOR_ATTRIBUTES1
	151     SQL_KEYSET_CURSOR_ATTRIBUTES2
	10000   SQL_XOPEN_CLI_YEAR
. Star Office complains "Statement option 109" is not implemented in SQLGetConnectOption.
. Add a check for SQLGetTypeInfo (test column names in versions 2 and 3 
  of odbc, varchar/nvarchar should be before sysname, numeric type for data in with
  different odbc versions)

  pool
. get connection pooling working with all protocol versions
. Make pool configuration a non-recompile process

  server
. Server API needs more work, especially for TDS 5.0/7.0

Tests
- "if 0 = 1 select 1" should not fail

Done (removed from above):
. Add bcp support to tds/dblib/ctlib. (started in dblib)
. RPC stuff not implemented (work in progress, libtds ok)
. Add support for TDS 8.0 (login works)
. TDS 7 Unicode to native charset conversion using iconv (partly done)
. autoconf the connection pooling stuff
. DBLIB: output params (tests)
. set database during login process
. libtds: dynamic query
. ctlib: null returns zero-length string(see "SELECT '' and TDS 7.0" in message list on 26 Jan 2003)

