3.51.21 (5-Oct-2007)

  Bugs fixed:
  * The wrong value was returned for SQL_DESC_LITERAL_PREFIX and
    SQL_DESC_LITERAL_SUFFIX for date-time fields. (Bug #31009)
  * The wrong SQLSTATE was reported when the connection to the server
    was lost. (Bug #3456)
  * SQLDescribeCol() incorrectly reported whether auto-increment and
    some timestamp fields were nullable. (Bug #26108)
  * SQLGetTypeInfo() reported the wrong column size for the SQL_TYPE_TIME
    type. (Bug #30939)
  * Empty selection for database and character set comboboxes in setup
    were set to " " instead of an empty string. (Bug #30568)
  * Fixed incorrect input requirement in the setup dialog. (Bug #30499)
  * Added SQLSetParam function and fixed handling of buffer length in
    SQLBindParameter. (Bug #29871)
  * Fixed SQLSetPos that generated incorrect INSERT statement for result
    columns without bound data buffers. (Bug #31246)

----

3.51.20 (7-Sep-2007)

  Bugs fixed:
  * The FLAG_NO_PROMPT option was not handled by SQLDriverConnect().
    (Bug #30840)
  * Removed checkbox in setup dialog for FLAG_FIELD_LENGTH ("Don't
    Optimize Column Width"), which was removed from the driver in 3.51.18.
  * The wrong column size was returned for binary data. (Bug #30547)
  * The specified length of the username and authentication parameters to
    SQLConnect() were not being honored. (Bug #30774)
  * SQLGetData() will now always return SQL_NO_DATA_FOUND on second call
    when no data left, even if requested size is 0. (Bug#30520)
  * SQLSetParam() caused memory allocation errors due to driver manager's 
    mapping of deprecated functions (buffer length -1). (Bug#29871)
  * SQLGetConnectAttr() did not reflect the connection state correctly.
    (Bug#14639)

----

3.51.19 (8-Aug-2007)

  Functionality added or changed:
  * Because of Bug #10491 in the server, character string results were
    sometimes incorrectly identified as SQL_VARBINARY. Until this server
    bug is corrected, the driver will identify all variable-length
    strings as SQL_VARCHAR.

----

3.51.18 (6-Aug-2007)

  Functionality added or changed:
  * An experimental binary package, without an installer, is available
    for Microsoft Windows x64 Edition.
  * Binary packages as disk images with installers are now available
    for Mac OS X.
  * Binary packages for Sun Solaris are available as PKG packages.
  * Added FLAG_MULTI_STATEMENTS to allow issuing queries that contain
    multiple statements. Also added to the setup GUI. (Bug #7445)
  * Removed support for the TRACE and TRACEFILE DSN options. The standard
    ODBC logging should be used.
  * Added support for SQL_ATTR_ROW_BIND_OFFSET_PTR in normal cursors.
    (Bug #6741)
  * Added SSL options to the GUI setup dialog.

  Bugs fixed:
  * SQLColumns() incorrectly reported that an auto-incrementing
    field was not nullable. (Bug #14407)
  * SQLColumns() incorrectly reported that an auto-updating timestamp
    field was not nullable. (Bug #14414)
  * Lengths returned by SQLColumns(), SQLDescribeCol(), and SQLColAttribute()
    were often incorrect. These lengths should now conform to the ODBC
    specification. FLAG_FIELD_LENGTH no longer has any effect. The default
    behavior was incorrect. (Bug #27862)
  * The SQL_DATA_TYPE column in SQLColumns() results did not report the
    correct value for date and time types.
  * The SQL_DATETIME_SUB column in SQLColumns() was not correctly set for
    date and time types.
  * The value for SQL_DESC_FIXED_PREC_SCALE was not returned correctly
    for decimal values in MySQL 5.0 and later.
  * The wrong value from SQL_DESC_LITERAL_SUFFIX was returned for binary
    fields.
  * The wrong value for SQL_DESC_TYPE was returned for date and time types.
  * The wrong value for DECIMAL_DIGITS in SQLColumns() was reported for
    FLOAT and DOUBLE fields, as well as the wrong value for the scale
    parameter to SQLDescribeCol(), and the SQL_DESC_SCALE attribute
    from SQLColAttribute().
  * MySQL BIT(n) fields were always treated as SQL_BIT data. When n > 1,
    they are now treated as binary data.
  * If the connection character set was set to a multibyte character set,
    such as UTF-8, the wrong column size was reported. (Bug #19345)
  * SQLSpecialColumns() returned all TIMESTAMP fields when queried for
    SQL_ROWVER, not just an auto-updating TIMESTAMP field. (Bug #9927, still
    limited by Bug #30081 in the server.)
  * SQLConnect() and SQLDriverConnect() were rewritten to eliminate duplicate
    code and ensure all options were supported using both connection methods.
    SQLDriverConnect() now only requires the setup library to be present when
    the call requires it.
  * SQLColumns() failed when a catalog was specified due to an
    incorrectly-generated query. (Bug #29888)
  * SQLGetTypeInfo() returned incorrect information for date and time
    fields, and would not return results when queried for the SQL_DATETIME
    type. (Bug #28657)
  * myodbc3i did not honor the 's' and 'u' modifier to the -d option for
    installing the driver as a system or user driver. (Bug #29964)
  * Tables from the mysql database (catalog) were listed as SYSTEM TABLES
    by SQLTables() even when a different catalog was being queried. This
    also introduced errors due to the fix for Bug #26934.  (Bug #28662)

----

3.51.17 (13-Jul-2007)

  Functionality added or changed:
  * The setup library has been split into its own RPM package, to allow
    installing the driver itself with no GUI dependencies.
  * Added an option (CHARSET) for specifying the default character
    set for a connection. This must be used instead of a "SET NAMES"
    statement. Also available from the GUI setup dialog. (Related
    to Bug #6667 and Bug #9498.)
  * Dis-allow NULL ptr for null indicator when calling SQLGetData()
    if value is null. Now returns SQL_ERROR w/state 22002.
  * Fixed calling convention ptr and wrong free in myodbc3i, and fixed
    the null terminating (was only one, not two) when writing DSN to string.

  Bugs fixed:
  * myodbc3i did not correctly format driver info, which could cause the
    installation to fail. (Bug #29709)
  * Multiple result sets were not correctly flushed when a statement
    handle was closed. (Bug #16817)
  * SQLProcedures() did not handle NULL parameters, which could lead to 
    crashes (Bug #28316) 
  * SQLColumns() did not handle many of its parameters correctly, which
    could lead to incorrect results. The table name argument was not handled
    as a pattern value, and most arguments were not escaped correctly when
    they contained non-alphanumeric characters. (Bug #8860)
  * If there was more than one unique key on a table, the correct fields
    were not used in handling SQLSetPos(). (Bug #10563)
  * SQLColAttribute() returned the wrong value for SQL_DESC_BASE_COLUMN_NAME
    and SQL_DESC_BASE_TABLE_NAME for aliased fields. (Bug #6197)
  * Calling SQLGetDiagField with RecNumber 0,DiagIdentifier
    NOT 0 returns SQL_ERROR (Bug #16224)
  * Correctly return error if SQLBindCol is called with an invalid column
  * Fixed error handling of OOM and bad connections in catalog functions.
    This might raise errors in code paths that had not seen them in the past.
    Gathered the logic for internal result sets into one place. (Bug #26934)
  * Fixed bad use of memory related to setup/util/GUI. (Bug #27315)
  * Added a new DSN "OPTION" (FLAG_ZERO_DATE_TO_MIN) to retrieve XXXX-00-00
    dates as the minimum allowed ODBC date (XXXX-01-01). Added another
    option (FLAG_MIN_DATE_TO_ZERO) to mirror this but for bound parameters.
    FLAG_MIN_DATE_TO_ZERO only changes 0000-01-01 to 0000-00-00. (Bug #13766)
  * Fixed possible crash if SQLBindCol() was not called before SQLSetPos().
    Fixed use of MYSQL structure pertaining to updating large blobs in
    cursors. (Bug #10562)

----

3.51.16 (14-Jun-2007)

  Functionality added or changed:
  * Added support for using SSL. This is not yet exposed in the setup GUI,
    but must be enabled through configuration files or the DSN. (Bug #12918)

  Bugs fixed:
  * Statements that return multiple result sets (such as calls to stored
    procedures) would not free all results when closed. (Bug #27544)
  * SQL_C_TYPE_DATE, SQL_C_TYPE_TIME, and SQL_C_TYPE_TIMESTAMP were formatted
    without seperators, which could cause them to get interpreted incorrectly
    in some cases due to server bugs. (Bug #15773)
  * Calls to SQLNativeSql() could cause stack corruption due to an incorrect
    pointer cast. (Bug #28758)
  * SQLSetPos() could update or delete the wrong rows when the original result
    set did not contain all columns of a multi-part primary key. (Bug #28255)
  * SQLTables() did not distinguish tables from views. (Bug #23031)
  * The wrong function was used for freeing the artificial result sets that
    are created by some catalog functions. (Bug #22797)
  * Accessing the results of catalog functions could cause a crash when the
    "Don't cache results" option was set and a forward-only cursor was
    being used. (Bug #4657)
  * SQL_WVARCHAR and SQL_WLONGVARCHAR parameters were not properly quoted
    and escaped. (Bug #16235)
  * SQLForeignKeys() did not properly escape wildcard characters in its
    table name parameters when retrieving information. (Bug #27723)
  * Calls to SQLSetPos() could cause the driver to incorrectly calculate the
    length of some fields. (Bug #16917)

----

3.51.15 (04-May-2007)

  Bugs fixed:
  * SQLGetFunctions() reported that the driver supported SQLProcedureColumns(),
    even though it does not. (Bug #27591)
  * The row status array given to SQLExtendedFetch() was being stored
    as SQL_ATTR_ROW_STATUS_PTR, which could cause it to be used when it
    should not.
  * SQLSetPos() would not update a row unless all columns were bound,
    but it should only require that at least one column is bound and
    not set to be ignored.
  * SQLBulkOperations() and SQLSetPos() used the wrong indicator variable
    values when batch-inserting rows. (Bug #24306)
  * SQLGetConnectAttr() would report an incorrect isolation level if it
    was not explicitly set using SQLSetConnectAttr(). (Bug #27589)
  * The last argument of SQLColAttribute() and SQLColAttributes() was
    always being treated as a pointer to an SQLINTEGER even though it is
    sometimes a pointer to an SQLLEN.
  * SQLForeignKeys would return keys from the wrong tables due to improper
    handling of table names. (Bug #4518)
  * Changed the behavior of myodbc3i utility, so it loads the driver library
    prior to the setup library when creating a new DSN (Bug #27220)
  * SQLProcedures returned incomplete and incorrect information. (Bug #23033)
  * Statements that used "WHERE CURRENT OF" for positioned updates could
    not be re-executed or used with parameters that were provided using
    SQLPutData() and SQLParamData(). (Bug #5853)
  * SQLTransact() did not commit or rollback all transactions in the
    environment when no database connection was specified. (Bug #21588)
  * Updated use of FIELD_TYPE_* to MYSQL_TYPE_*, which has been preferred
    since the 3.23 days. (And FIELD_TYPE_* may finally disappear in 5.2.)

----

3.51.14 (08-Mar-2007)

  Functionality added or changed:
  * Added auto-reconnect option because automatic reconnect is now
    disabled by default in libmysql
  * Added auto is null option (Bug #10910)
  * Added support for SQLMoreResults
  * Checking SQL_ATTR_CONNECTION_DEAD now always calls mysql_ping() to
    check for a dead connection.
  * Remove ODBC escape syntax { and } that begin and terminate statements,
    allowing {CALL (?)} for procedures that don't require OUT or INOUT
    parameters
  * Improved regression tests
  * Added --with-separate-debug-driver ./configure option

  Bugs fixed:
  * SQL_ATTR_CONNECTION_TIMEOUT was inappropriately mapped to
    MYSQL_OPT_CONNECT_TIMEOUT. (Bug #19823)
  * Prepared statements using the embedded MySQL server would fail
    due to an uninitialized variable. (Bug #16535)
  * Fix positioned update and delete on statements derived from one
    table with no primary key but including all columns (Bug #22796)
  * Only initialize the ODBC version when the old-style SQLAllocEnv()
    is called. If SQLAllocHandle() is used, the ODBC version must be
    explicitly specified using a call to SQLSetEnvAttr()
  * On 64-bit systems, some types would be incorrectly returned. (Bug #26024) 
  * Using DataAdapter, Connector/ODBC may continually consume memory when
    reading the same records within a loop (Windows Server 2003 SP1/SP2 only).
    (Bug #20459)
  * Fix truncation of queries with leading spaces when SQL_ATTR_MAX_ROWS
    is set to a non-zero value (Bug #6609)
  * Fixed problem with memory allocation in Windows for BLOB and long
    queries that need re-allocation of net->buff
  * Using Connector/ODBC, with SQLBindCol and binding the length to the return
    value from SQL_LEN_DATA_AT_EXEC fails with a memory allocation error.
    (Bug #20547)
  * Fixed Windows-specific problems with the GUI for SQL_DRIVER_PROMPT
  * Fixed issues with numeric and decimal rounding
  * Fixed memory leak in SQLDriverConnect()
  * Fixed serious memory leak in SQLSpecialColumns() (up to 8KB/call)
  * Fixed handle leak in LibMain (Bug #21385, thanks to Leandro Becker)
  * Fixed field lengths reported by SQLDescribeCol() when using functions
    such as COMPRESS() in SELECT queries (Bug #20208)
  * Fixed 64-bit issues related to SQLINTEGER columns defined as int,
    but later cast to long.
  * TIME fields were incorrectly converted into date/time values. (Bug #25846,
    Bug #24867, and Bug #25432)
  * Fixed #Deleted issue in Microsoft Access by changing the default behavior
    of MyODBC driver regarding SQL_AUTO_IS_NULL variable. Added new option to
    the GUI and driver
  * Fixed memory leak in SQLSpecialColumns()
  * Corrected return size of SQLGetStmtAttr() when getting desc handles
  * Fixed SQLGetInfo() of SQL_TXN_CAPABLE to return SQL_TC_DDL_COMMIT
  * For SQL_C_TIME, handle conversion from the different time-related MySQL
    types, instead of always assuming it is just a TIME. (DATETIME, TIMESTAMP,
    and DATE were all handled incorrectly.)
  * Fix crash when default database is not set
  * Fix handling of lost connections (Bug #14639)
  * File DSNs could not be saved. (Bug #12019)
  * Nullability of auto_increment fields is incorrect. (Bug #10130)
  * Connector/ODBC may insert the wrong parameter values when using prepared
    statements under 64-bit Linux. (Bug #22446)
  * The SQLDriverConnect() ODBC method did not work with recent Connector/ODBC
    releases. (Bug #12393)
  * Some properties returned by SQLGetInfo() were set using the wrong data
    type, resulting in possible memory overruns. (Bug #20995)
  * Ending a transaction using SQLEndTran() on a environment handle was
    not supported. (Bug #21588)

----

3.51.13 (never officially released, changes listed with those for 3.51.14)

----

3.51.12 (25-Aug-2005)

  Functionality added or changed:
  * Improved README and other documentation
  * Improved source distribution for Microsoft Windows
  * Renamed package from 'MyODBC' to 'mysql-connector-odbc'
  * Improved configure script
  * Added -w option to myodbc3i to disable GUI popups
  * Redid help screen in myodbc3i
  * Added support for ODBCINI environment variable in SQLConnect()
  * Added CLIENT_MULTI_RESULTS client option
  * Added support for FIELD_TYPE_NEWDECIMAL
  * Moved to WiX-based installer for Windows
  * Made implied insert more intelligent (minimized the number of columns used)
  * Improved time/timestamp handling

  Bugs fixed:
  * Fixed problem with positioned update
  * Fixed SQLForeignKeys() to support more than 18 foreign keys
  * Fixed handling of quoting in SQLForeignKeys()
  * Fixed problem with SQLBulkOperations()
  * Fixed problems with SQL_C_BIT data type
  * Fixed problems with SQLGetTypeInfo() and date/time/timestamp
  * Fixed problems when SOCKET was something other than 'MySQL'

Binaries were made using MySQL 4.1.13 and unixODBC 2.2.11 (where applicable).

----

3.51.11-2 (11-Feb-2005)

  Bugs fixed:
  * Resources for last thread now freed
  * Rolled back a fix for Crystal Reports (force v3) because it 
    caused problems for Microsoft Access (wants v2)
  * Fixed binary RPM spec to no longer create sample DSN.
  * Fixed myodbcinst to exit with proper exit code.

----

3.51.11 (28-Jan-2005)

  Functionality added or changed:
  * Enhanced SQLGetTypeInfo(), mostly for blob types
  * Allow alternate keywords for DSN for read, silently converted upon write

  Bugs fixed:
  * Corrected SQLDriverConnect() to always prompt when SQL_DRIVER_PROMPT
    is specified
  * Fixed a number of problems with connecting using SQLDriverConnect
   
----

3.51.10a (15-Dec-2004)

  Functionality added or changed:
  * SQLDriverConnect() heavily reworked to support prompting
  * Port information now saved by GUI

  Bugs fixed:
  * Fixes for working with Crystal Reports

----

3.51.10 (25-Oct-2004)

  Functionality added or changed:
  * Qt-based setup library added
  * MyODBC now built against 4.1 client library

  Bugs fixed:
  * (Bug #3456)

----

3.51.07 (10-Oct-2003)

  Functionality added or changed:
  * MyODBC now built against 4.0 client library
  * ./configure now uses mysql_config to get library and include options
  * Compile as a thread-safe library by default
  * Disable SIGPIPE if not compiling threadsafe
  * Added test suite (run as user 'odbc' and no password)
  * Cleaned up code to conform to MySQL coding standards
  * Added bin-tar target to Makefile.am for building binary distribution
  * Added make_win_src_distribution script for building Windows source archive
  * Moved Windows-specific files into win32 directory

  Bugs fixed:
  * Fixed compiler warnings
  * Fixed crash when SQLSetPos() is called with SQL_ADD to insert a
    record with an empty value (pcbValue is SQL_COLUMN_IGNORE)
  * Fixed SQLFetch() to return and update SQL_ATTR_ROWS_FETCHED_PTR
    and SQL_ATTR_ROW_STATUS_PTR statement attribute pointers
  * Fixed SQLFetch() to properly handle SQL_ROWSET_SIZE
  * Fixed .NET crash when creating the MFC database project (Bug #913)
  * Added search pattern for all catalog APIs for all input parameters
  * Added support for SQLProcedures when connected to MySQL 5.0 server
  * Fixed SQL_ATTR_CURRENT_CATALOG to take a correct length pointer
  * Portability fixes

----

3.51.06 (27-Feb-2003)

  Bugs fixed:
  * Fixed handling long text field with 0 length data (for ADO)
  * Fixed syntax error due to error message overflow
  * Fixed problems when a dynamic cursor is  used for cursor-based
    updated and deletes and there ar eno key fields and the table
    schema is changed
  * Fixed to refresh the initialized SQLSTATE values in the driver
    when the ODBC version is changed and when multiple instances of
    the driver are loaded
  * Fixed a problem with bulk inserts are performed using SQLBulkOperations()
    or SQLSetPos() with SQL_ADD and the wrong pcbValue is given

----

3.51.05 Release Candidate (27-Feb-2003)

  Functionality added or changed:
  * Return the DRIVER name when no DSN is specified
  * Added support for new autoconf tools
  * Added scripts for producing binary distributions and source snapshots

  Bugs fixed:
  * Fixed core dumps when driver is built with debug options and
    the thread-safe client library is used
  * Return a valid list of catalog names in SQLTables() (for OpenOffice.org)
  * Fixed SQLTablePrivileges() and SQLColumnPrivileges() to return each
    privilege type in a distinct row
  * Fixed the time conversion format error from SQL_TIME_STRUCT (thanks
    to Ocke Janssen from Sun)
  * Fixed core dump on HP-UX in SQLSpecialColumns()
  * Fixed SQLGetTypeInfo to return individual rows for auto_increment
    status for all numeric types (requested by Gerry Sweeney)
  * Return an error when converting from SQL_C_NUMERIC. The driver is not able
    to handle SQL_NUMERIC_STRUCT conversion due to the lack of descriptors
    support.  (Requested by Michael Thomas of Microsoft's ODBC team)
  * Added missing ROWS_FETCH_PTR and PARAM_PROCESSED_PTR status updates to
    SQLFetch() and SQLExtendedFetch()
  * Fixed failure to set the default attributes for a new DSN when they were
    not set through the config APIs on Microsoft Windows
  * Cleaned up configure scripts to work on all UNIX platforms and gcc 3.x
  * Minor fixes for non-gcc compilers

----

3.51.04 (30-Sep-2002)

  Functionality added or changed:
  * Support for handling large tables without caching the entire result
    set. Now one can force the driver to use mysql_use_result() instead
    mysql_store_result(). Note that this can be used only with
    forward-only cursors.
  * Added options to ./configure to control whether to use the thread-safe
    client library
  * Cleaned up thread-safe code (debug calls)
  * Added checks for attempts to set pre-connection attributes (AUTOCOMMIT,
    TXN_ISOLATION) values after the connection instead of returning error
    when they are set before the connection
  * Added two new options, 'Force use of forward-only cursors' 
    and 'Don't cache results', to help large-scale applications
  * Made improvements to driver logging calls (myodbc.log and myodbc.sql)

  Bugs fixed:
  * Fixed SQLTables() to not return an data related to SYSTEM TABLES
  * Fixed core dumps on HP-UX and AIX
  * Portability changes for MySQL 4.0.3 and 4.1
  * Fixed SQLForeignKeys() when the CREATE TABLE had a COMMENT syntax
  * Fixed rs.update when server-side cursors are used
   
----

3.51.03 (29-May-2002)

  Functionality added or changed:
  * Added new DSN configuration dialog window
  * Added support for SQLForeignKeys() for InnoDB tables
  * Added support for new Query Log eoption, which allows the driver
    to log all SQL queries that it processes
  * Added code for one-time initialization when ODBC version is specified
    as SQL_OV_ODBC2 so that subsequent calls will not check ODBC version
  * Added MY_SQL_PRIMARY_KEY(1212) option to SQLColAttribute to make
    rs.resync work from ADO (info from Dan Perik)

  Bugs fixed:
  * Fixed multi-step generated errors when server-side cursor is used
    (Thanks to vrincon_dtt@hotmail.com and AdoAnywhere)
  * Fixed time conversion using SQL_C_TIME when hour has three digits
    (Reported by Michael Thomas)
  * Fixed ADO/DAO empty string issue (reported by Tom DeGerlia)
  * Fixed BLOB data reading from ADO/DAO (reported by Justin Goodwin)
  * Made SQLSetPos() return an error when float fields are used (info
    from Jim Dickenson)
  * Fixed errors generated during export of tables with VARCHAR/TEXT
    from Microsoft Access and Microsoft DTS to MySQL using MyODBC.
  * Fixed to handle SQL_C_BINARY properly (info from Spilka)
  * Updated SQLSTATE to return correct truncated data in warning
    cases (info from akbar ali)
  * Fixed type casting issues in SQLGetInfo to make OpenOffice.org
    work (reported by Ocke Janssen)
  * Fixed SQLFetch() when it is called after SQLFetchScroll() with
    SQL_FETCH_FIRST (reported by Simone Tregnago)
  * Mapped SQL_ATTR_CONNECTION_TIMEOUT option to mysql_options() with
    MYSQL_OPT_CONNECT_TIMEOUT
   
----

3.51.02 (05-Mar-2002)

  Functionality added or changed:
  * Added support for SQLTablePrivileges() and SQLColumnPrivileges()
   
  Bugs fixed:
  * Fixed SQLDriverConnect() to return  correct output string. This is
    the main fix for 'Reserved error (-7778)' from all Windows ODBC
    applications.
  * Fixed SQLError() to clear the error buffers on the first call when
    the ODBC version is SQL_OV_ODBC3, so subsequent calls will return
    SQL_NO_DATA.
  * Fixed SQL_UPDATE and SQL_ADD from SQLSetPos().
  * Fixed SQLSetPos() and SQLBulkOperations() to handle when the 
    application passes SQL_NTS as pcbValue
  * Fixed SQLColumns() to return the correct Nullability
  * Fixed SQL_ATTR_CONNECTION_DEAD. This should fix the issues from
    SQLExpress for XBase++ and .NET connection closed issues
  * Fixed SQLGetTypeInfo() to return correct values for SQL_DATE, 
    SQL_TYPE_DATE, SQL_TIME, SQL_TYPE_TIME, SQL_TIMESTAMP, and
    SQL_TYPE_TIMESTAMP.
  * Fixed tab ordering from DSN configuration dialog
  * Added default values for new DSN creation
  * Fixed export of tables from Microsoft Access 97 or Microsoft DTS
    when one of the field types are TEXT or VARCHAR

----

3.51.01 (30-Jan-2002)

  Functionality added or changed:
  * Added support for the following functions:
  - SQLAllocHandle()
  - SQLFreeHandle()
  - SQLSetEnvAttr()
  - SQLGetEnvAttr()
  - SQLSetConnectAttr
  - SQLGetConnectAttr
  - SQLSetStmtAttr
  - SQLGetStmtAttr
  - SQLFetchScroll
  - SQLBulkOperations with SQL_ADD (bulk inserts)
  - SQLGetDiagRec
  - SQLGetDiagField
  - SQLCloseCursor
  - SQLEndTran
  * SQLGetInfo() and SQLGetFunctions() were completely rewritten
  * Completely changed error handling, and driver returns SQLSTATE
    values based on the ODBC version
  * Enhanced cursor handling
  * Changed SQLGetTypeInfo() to return column headers as per ODBC 3.50
    specification
  * Changed all catalog functions to return column headers as per ODBC 3.50
    specification
  * Added support for dynamic cursor types
  * Added a feature called 'Test Data Source' in the DSN setup catalog so
    that DSN settings can be tested while configuring
  * Added 'Help' button to the DSN setup dialog
  * Added SOCKET option to the SQLConnect() interface
  * Added support for the deprecated SQLParamOptions() function so one
    can specify batch parameter processing with ODBC 2.x applications
  * Added server name and version to the statement error prefix
  * Added FILEDSN support
   
  Bugs fixed:
  * Fixed SQL_FETCH_RELATIVE from SQLExtendedFetch() or SQLFetchScroll() to
    handle the following cases:
    - BeforeStart AND FetchOffset <= 0
    - CurrRowsetStart = 1 AND FetchOffset < 0
    - CurrRowsetStart > 1 AND 
      CurrRowsetStart + FetchOffset < 1 AND
      |FetchOffset| > RowsetSize
    - CurrRowsetStart > 1 AND 
      CurrRowsetStart + FetchOffset < 1 AND
      |FetchOffset| <= RowsetSize         
   * Fixed SQL_FETCH_RELATIVE from SQLExtendedFetch() or SQLFetchScroll()
     to handle the case when:
     - FetchOffset  < 0 AND
       |FetchOffset| > LastResultRow AND
       |FetchOffset| > RowsetSize    
   * Fixed memory leaks when linked against iODBC or unixODBC

vim: ft=text
