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)
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.