pymssql Changelog

What's new in pymssql 2.1.3

Jun 27, 2016
  • Bug fixes:
  • Add support for reporting TDS version 7.3 is in use via the ``tds_version`` property of a ``_mssql``-level connection.

New in pymssql 2.1.1 (Jan 16, 2015)

  • Highlights:
  • Custom db-lib message handlers written in Python. Azure compatibility. More compatibility with uuid.UUID values. Finish migration of tests to py.test. Customizable SQL statements at connection time. Customizable auto-commit behavior makes it possible to send DDL from pymssql. Ship documentation in source distribution. Bug fixes. Enhanced documentation.
  • Features:
  • Custom message handlers (GH-139)
  • Compatibility with Azure
  • Customizable per-connection initialization SQL clauses (both in ``pymssql`` and ``_mssql``) (GH-97)
  • Added ability to handle instances of ``uuid.UUID`` passed as parameters for SQL queries both in ``pymssql`` and ``_mssql``. (GH-209)
  • Allow using `SQL Server autocommit mode`_ from ``pymssql`` at connection opening time. This allows e.g. DDL statements like ``DROP DATABASE`` to be executed. (GH-210)
  • Documentation: Explicitly mention minimum versions supported of Python (2.6) and SQL Server (2005).
  • Incremental enhancements to the documentation.
  • Bug fixes:
  • Handle errors when calling Stored Procedures via the ``.callproc()`` pymssql cursor method. Now it will raise a DB-API ``DatabaseException``; previously it allowed a ``_mssql.MSSQLDatabaseException`` exception to surface.
  • Fixes in ``tds_version`` ``_mssql`` connections property value
  • PEP 249 compliance (GH-251)
  • pymssql: Made handling of integer SP params more robust (GH-237)
  • Check lower bound value when convering integer values from to Python to SQL (GH-238)
  • Internals:
  • Completed migration of the test suite from nose to py.test.
  • Added a few more test cases to our suite.
  • Tests: Modified a couple of test cases so the full suite can be run against SQL Server 2005.
  • Added testing of successful build of documentation to Travis CI script.
  • Build process: Cleanup intermediate and ad-hoc anciliary files (GH-231, GH-273)
  • setup.py: Fixed handling of release tarballs contents so no extraneous files are shipped and the documentation tree is actually included. Also, removed unused code.

New in pymssql 2.1.0 (Feb 26, 2014)

  • Improvements:
  • "Green" support (GH-135)
  • Better error messages.
  • Performance improvements
  • Reworked row fetching (GH-159)
  • Modify get_row() to use the CPython tuple API (GH-178)
  • MSSQLConnection: Add `with` (context manager) support (GH-171)
  • Allow passing in binary data (GH-179)
  • Add support for binding uuid.UUID instances to stored procedures input params (GH-143)
  • The version number is now stored in one place, in pymssql_version.h. This makes it easier to update the version number and not forget any
  • places, like I did with pymssql 2.0.1
  • Improved support for using py.test as test runner (GH-183)
  • Improved PEP-8 and pylint compliance
  • Bug Fixes:
  • GH-142 ("Change how *.pyx files are included in package") this should prevent pymssql.pyx and _mssql.pyx from getting copied into the root of your virtualenv. Thanks, @Arfrever!
  • GH-145 ("Prevent error string growing with repeated failed connection attempts.")
  • GH-151 ("err_handler: Don't clobber dberrstr with oserrstr")
  • GH-152 ("_mssql.pyx: Zero init global last_msg_* vars")
  • GH-177 ("binary columns sometimes are processed as varchar")
  • buffer overflow fix (GH-182)
  • Return uniqueidentifer columns as uuid.UUID objects on Python 3

New in pymssql 2.0.1 (Jan 31, 2014)

  • MANIFEST.in: Add "\*.rst" to prevent install error: "IOError: [Errno 2] No such file or directory: 'ChangeLog_highlights.rst'"

New in pymssql 2.0.0 (Jan 31, 2014)

  • Better performance
  • Thread safety
  • Fuller test suite
  • Support for Python 3
  • Continuous integration via `Travis CI`_
  • Easier to understand code, due to `Cython`_

New in pymssql 2.0.0 Build 20130108 Beta 1 (Mar 11, 2013)

  • pymssql module:
  • rewritten from scratch in C, you should observe even better performance than before
  • dsn parameter to pymssql.connect() has been removed
  • host parameter to pymssql.connect() has been renamed to server to be consistent with _mssql module
  • max_conn parameter to pymssql.connect() has been removed
  • pymssqlConnection class:
  • autocommit() function has been changed to autocommit property that you can set or get its current state
  • pymssqlCursor class:
  • fetchone_asdict() method has been removed. Just use pymssql.connect() with as_dict=True, then use regular fetchone()
  • fetchmany_asdict() method has been removed. Just use pymssql.connect() with as_dict=True, then use regular fetchmany()
  • fetchall_asdict() method has been removed. Just use pymssql.connect() with as_dict=True, then use regular fetchall()
  • _mssql module:
  • added native support for stored procedures (MSSQLStoredProcedure class)
  • maxconn parameter to _mssql.connect() has been removed
  • timeout and login_timeout parameter to _mssql.connect() has been added
  • get_max_connections() and set_max_connections() module-level methods have been added
  • MSSQLConnection class:
  • added tds_version property

New in pymssql 1.9.908 (May 4, 2010)

  • provide support for Python 3.0 and newer,
  • implement support for stored procedures,
  • rewrite DB-API compilant pymssql module in C (actually in Cython) for increased performance,
  • clean up the module API and the code.

New in pymssql 1.9.905.1 (Mar 29, 2010)

  • Fix missing win32 folder

New in pymssql 1.0.2 (Apr 28, 2009)

  • fixed severe bug introduced in 1.0.0 that caused some queries to be truncated or overwritten with binary garbage - many thanks to Igor Nazarenko who found the exact cause of the bug,
  • fixed bug - if a query batch contained DECLARE or possibly some other T-SQL statements, query results were not available (DECLARE yielded additional result with no columns) - thanks Corey Bertram and Wes McKinney,
  • fixed incompatibility - a % character in query without parameters is treated like any other character; it gains its special meaning as a formatting specifier only if any arguments are given. This allows for straightforward queries similar to the following: SELECT * FROM sysobjects WHERE name LIKE 's%',
  • updated Nagios plugin - thanks Josselin Mouette for the patch,
  • pymssql on Linux/*NIX understands BIGINT natively - thanks Alexandr Zamaraev for the patch (on Windows it is returned as SQLNUMERIC data type by the DB Library, which is converted to Python Decimal value),
  • new feature: pymssql.connect() method understands new argument: as_dict - which allows to return rows as dictionaries instead of tuples - thanks Daniel Watrous for the idea and draft patch,
  • new feature: pymssql.connect() and _mssql.connect() methods understand new argument: max_conn - which helps increase the default 25 concurrent connections limit - thanks Daniel Watrous for the idea and draft patch,
  • important doc update: documented that with the technology pymssql currently uses (DB Library for C), it is not possible to read or write BLOBs longer than 4096 bytes,
  • further webpage changes to improve access to information.

New in pymssql 1.0.1 (Feb 5, 2009)

  • fixed bug in execute() function introduced in 1.0.0,
  • added Nagios plugin, thanks to Josselin Mouette and Julien Blache from Debian team,
  • some 64-bit issues were fixed,
  • charset bug was fixed, thanks again Josselin Mouette,
  • pymssql was tested on more platforms, see Platforms page for details.

New in pymssql 1.0.0 (Jan 30, 2009)

  • pymssql no longer fetches all rows into memory, instead it implements convenient iterators that get data from SQL server row by row,
  • row data is a dictionary that can be accessed by column index or column name,
  • identity value of last inserted row can be obtained easily,
  • number of rows affected by last database operation is available,
  • it is possible to connect to database using Windows Authentication (so called "trusted connection") on Windows,
  • more DB-API extensions has been implemented: .lastrowid, .rownumber, .connection, cursor iterators (see DB-API Specification if you're interested), and the scripts that used pymssql DB-API compliant methods will continue to work,
  • _mssql module has many new convenient features, see User guide and examples for details,
  • exceptions and return codes have been reworked to be more intuitive and usable,
  • the module now has decent inline documentation: just use help(pymssql) or help(_mssql) to see many notes and examples,
  • pymssql 1.0.0 is compatible with Python 2.4, 2.5 and 2.6,
  • tested with SQL 2000, SQL 2005, and SQL 2008,
  • BEWARE however, if you were using the lower level _mssql module, it changed in incompatible way. You will need to change your scripts, or continue to use pymssql 0.8.0. This is why major version number was incremented.