Skip to content

Latest commit

 

History

History
311 lines (263 loc) · 11.1 KB

CHANGELOG.md

File metadata and controls

311 lines (263 loc) · 11.1 KB

Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

1.14.0 - 2021-03-25

Fixed

  • Replaced travis-ci with Github Actions.
  • Replaced custom Docker-based testing infrastructure with tox.
  • Fixed translation of SQL Server errors to Python exceptions for all errors with severity > 10. #84

1.13.0 - 2020-11-12

Added

  • Offical support for Python 3.9.
  • Expose ctds.Row type so that it can be used as a type annotation.
  • Add description attribute to rowlists and rows.
  • Add ctds.Row.dict() method.

Fixed

  • Cache cursor.description rather than creating a new instance every time.

1.12.0 - 2020-03-07

Fixed

  • Fixed Python -> SQL type conversion to consider client TDS version when choosing SQL type. #68.
  • Added Sphinx extension to auto-generate the .nojekyll file required by Github pages.
  • Consolidate coverage output to a single directory.

1.11.0 - 2019-11-14

Added

  • Official support for Python3.8.
  • Automate Python egg publishing to pypi.
  • Automate documentation publishing.

Fixed

  • Fix handling of IDENTITY columns in ctds.Connection.bulk_insert(). #59.

1.10.1 - 2019-06-27

Fixed

  • Properly handle errors in the ctds.pool.ConnectionPool.connection context manager.

1.10.0 - 2019-04-15

Added

  • Add FreeTDS 1.1 to test matrix.

Fixed

  • Preserve microsecond precision of TIME and DATETIME2 SQL types when converting to Python (and supported by FreeTDS).
  • Fix improper conversion of empty strings to NULL in ctds.Connection.bulk_insert(). #35.

1.9.0 - 2018-11-05

Added

  • Add support for passing sequences of dict values to ctds.Connection.bulk_insert. The mapping key is used to determine the column order based on the column info available after bcp_init. #38

Fixed

  • Fix truncation of strings containing multi-byte sequences when not using sp_executesql.
  • Fix ctds.Cursor.executemany() truncating data for integer types. #43.

1.8.0 - 2018-09-07

Added

  • Official support for Python 3.7.
  • Add optional hostname parameter to ctds.connect(). #20.
  • Add optional ntlmv2 parameter to ctds.connect(). #27.

Fixed

  • Retry on SQL Server unittest database setup failures due to race conditions when starting SQL Server. This should make the unit tests much more reliable.
  • Add python_requires specifier to setup.py.
  • Properly handle decimal.Decimal values specified in scientific notation.
  • Properly set autocommit in ctds.connect(), even when ansi_defaults is False.
  • Download FreeTDS packages from HTTP URL for compatibility with Travis CI builds (FTP no longer works due to firewall issues.)
  • Fix OS X Travis CI build.
  • Improve SQL Server -> DB API 2.0 error mappings. #12
  • Remove Python 2.6 from Appveyor CI due to lack of support.
  • Fix ctds.Cursor.executemany() truncating data for variable width types. #25.

1.7.0 - 2018-01-24

Added

  • Add rich comparison support and repr to ctds.Parameter.

Fixed

  • Compiler warnings on older version of gcc.
  • Debug assert when passing invalid parameters to ctds.Cursor.execute*().

1.6.3 - 2017-12-05

Fixed

  • Raise proper warning from ctds.Connection.messages.

1.6.2 - 2017-11-27

Fixed

  • Support values longer than 8000 characters in ctds.SqlVarChar.

1.6.1 - 2017-11-20

Fixed

  • Revert passing BINARY 0x00 for (N)VARCHAR arguments.

1.6.0 - 2017-11-17

Added

  • Documentation improvements.
  • Add an optional paramstyle argument to ctds.connect, with support for the named paramstyle.
  • Add valgrind support for memory leak detection and integrate it into the CI build process (Travis only).
  • Add optional read_only argument to ctds.connect for indication of read-only intent. Note: Requires as yet unreleased FreeTDS support.

Fixed

  • Pass a BINARY 0x00 byte instead of an empty string for (N)VARCHAR arguments. This is to work around the inability of the db-lib API to pass empty string parameters via RPC.

1.5.0 - 2017-10-16

Added

  • Windows support, with Appveyor continuous integration.
  • Python egg-related metadata checks.
  • Moved source code under ./src directory, per best practices.

1.4.1 - 2017-09-29

Fixed

  • Only clear Connection.messages on calls to execute, executemany or callproc. Add support for raising multiple non-zero severity messages as warnings.

1.4.0 - 2017-09-13

Fixed

  • Changed the implementation of Cursor.execute to only perform parameter substitution if parameters are provided. When no parameters are passed, the SQL format string is treated as raw SQL.

Added

  • Connection.messages read-only property.
  • Improved code coverage.

1.3.2 - 2017-07-25

Fixed

  • Register RowListType to support pickling/unpickling.

Added

  • Convert test framework to use Docker-based containers for SQL Server and for each supported combination of Python and FreeTDS.
  • Integrate codecov support for code coverage tracking.
  • Move documentation hosting to GitHub pages.
  • Include change log in generated documentation.

1.3.1 - 2017-05-31

Fixed

  • Fix connection failures when connecting to high port numbers on OS X.
  • Fix unit test infrastructure to respect configured port number.
  • Work around inconsistencies between FreeTDS versions in the bcp_getl/ BCP_SETL interfaces.

1.3.0 - 2017-03-15

Fixed

  • Replace usage of the deprecated PyErr_Warn API with PyErr_WarnEx. This will allow clients to indicate that warnings should be raised as exceptions.

1.2.3 - 2017-03-13

Fixed

  • Improve repr implementation for SQL type wrapper objects.
  • Fixed informational (warning) message reporting where many SQL Server reported messages were not reported as warnings due if not returned to the client promptly enough.

1.2.2 - 2017-01-10

Fixed

  • Fix multi-byte UTF-16 character conversion.

1.2.1 - 2016-12-27

Fixed

  • Include ctds.pool in egg package.

1.2.0 - 2016-12-27

Fixed

  • Documentation improvements around (N)VARCHAR handling.

Added

  • ctds.pool.ConnectionPool class.
  • Support the in keyword for resultset rows.
  • Add code coverage support for Python code.
  • Improve code coverage support for c code.

1.1.0 - 2016-11-14

Added

  • ctds.SqlNVarChar type.
  • Ignore the replacement parameter markers inside of string literals in SQL statements passed to ctds.Cursor.execute() and ctds.Cursor.executemany().

Fixed

  • Work around a Memory leak in FreeTDS when specifying the database at connection time.
  • Fixed failure in ctds.Cursor.execute() and ctds.Cursor.executemany() when passing a SQL statement longer than 4000 characters.

1.0.8 - 2016-08-17

Fixed

  • Configure connections to use UTF-16 when supported (i.e. FreeTDS 1.00+). Don't replace codepoints outside of the UCS-2 range if the connection is using UTF-16 as it is no longer necessary and causes data loss.

1.0.7 - 2016-08-15

Fixed

  • Only use strict compile options for debug/development builds. Allow the client (e.g. pip) to specify the desired options when installing as an egg.

1.0.6 - 2016-08-15

Fixed

  • Compile under the c90 standard for better future portability.
  • Don't overwrite more useful error messages with the useless "The statement has been terminated." error.

Added

  • Minor documentation improvements.

1.0.5 - 2016-05-23

Fixed

  • Fix the ctds.Connection.timeout property to raise an appropriate error when the option is supported, but the set fails.

1.0.4 - 2016-05-19

Fixed

  • Fix the ctds.Connection.timeout property to work with the DBSETTIME option added in FreeTDS version 1.00.

Added

  • Support for TDS version 7.4, introduced with FreeTDS version 1.00.

1.0.3 - 2016-03-31

Fixed

  • Fix execute() and executemany() to work with older versions of FreeTDS (prior to 0.92.405). Format the SQL command manually, instead of using sp_executesql, since older versions of FreeTDS don't seem to support passing NVARCHAR arguments to remote procedure calls.

Added

  • Transaction documentation
  • Bulk insert documentation

1.0.2 - 2016-03-15

Fixed

  • Documentation typos and improvements

Added

1.0.1 - 2016-03-14

Fixed

  • Build on OS X

Added

  • Hypothetical integration with readthdocs.org

1.0.0 - 2016-03-14

Initial Release