123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492 |
- Metadata-Version: 2.1
- Name: pymssql
- Version: 2.1.4
- Summary: DB-API interface to Microsoft SQL Server for Python. (new Cython-based version)
- Home-page: http://pymssql.org
- Author: Damien Churchill
- Author-email: damoxc@gmail.com
- Maintainer: pymssql development team
- Maintainer-email: pymssql@googlegroups.com
- License: LGPL
- Keywords: mssql,SQL Server,database,DB-API
- Platform: any
- Classifier: Development Status :: 5 - Production/Stable
- Classifier: Intended Audience :: Developers
- Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
- Classifier: Programming Language :: Python
- Classifier: Programming Language :: Python :: 2.7
- Classifier: Programming Language :: Python :: 3
- Classifier: Programming Language :: Python :: 3.4
- Classifier: Programming Language :: Python :: 3.5
- Classifier: Programming Language :: Python :: 3.6
- Classifier: Programming Language :: Python :: 3.7
- Classifier: Programming Language :: Python :: Implementation :: CPython
- Classifier: Topic :: Database
- Classifier: Topic :: Database :: Database Engines/Servers
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
- Classifier: Operating System :: Microsoft :: Windows
- Classifier: Operating System :: POSIX
- Classifier: Operating System :: Unix
- pymssql - DB-API interface to Microsoft SQL Server
- ==================================================
- .. image:: https://travis-ci.org/pymssql/pymssql.svg?branch=master
- :target: https://travis-ci.org/pymssql/pymssql
- .. image:: https://circleci.com/gh/pymssql/pymssql.svg?style=svg
- :target: https://circleci.com/gh/pymssql/pymssql
- .. image:: https://ci.appveyor.com/api/projects/status/ts4q4nptm15ac6j7/branch/master?svg=true
- :target: https://ci.appveyor.com/project/level12/pymssql/branch/master
- .. image:: http://img.shields.io/pypi/dm/pymssql.svg
- :target: https://pypi.python.org/pypi/pymssql/
- .. image:: http://img.shields.io/pypi/v/pymssql.svg
- :target: https://pypi.python.org/pypi/pymssql/
- A simple database interface for `Python`_ that builds on top of `FreeTDS`_ to
- provide a Python DB-API (`PEP-249`_) interface to `Microsoft SQL Server`_.
- .. _Microsoft SQL Server: http://www.microsoft.com/sqlserver/
- .. _Python: http://www.python.org/
- .. _PEP-249: http://www.python.org/dev/peps/pep-0249/
- .. _FreeTDS: http://www.freetds.org/
- Detailed information on pymssql is available on the website:
- http://pymssql.org
- New development is happening on GitHub at:
- https://github.com/pymssql/pymssql
- There is a Google Group for discussion at:
- https://groups.google.com/forum/?fromgroups#!forum/pymssql
- Do you use pymssql?
- -------------------
- Can you take a minute and fill out this survey to help us prioritize development tasks?
- https://www.surveymonkey.com/s/KMQ8BM5
- .. image:: https://d2weczhvl823v0.cloudfront.net/pymssql/pymssql/trend.png
- :alt: Bitdeli badge
- :target: https://bitdeli.com/free
- Recent Changes
- ==============
- Version 2.1.4 - 2018-08-28
- ==============================
- General
- -------
- - Drop support for versions of FreeTDS older than 0.91.
- - Add Python 3.7 support
- - Drop Python 3.3 support
- Features
- --------
- - Support for new in SQL Server 2008 ``DATE``, ``TIME`` and ``DATETIME2`` data
- types (GH-156). The following conditions need to be additionally met so
- values of these column types can be returned from the database as their
- native corresponding Python data types instead of as strings:
- * Underlying FreeTDS must be 0.95 or newer.
- * TDS protocol version in use must be 7.3 or newer.
- Thanks Ed Avis for the implementation. (GH-331)
- Bug fixes
- ---------
- - Fix ``tds_version`` ``_mssql`` connection property value for TDS version.
- 7.1 is actually 7.1 and not 8.0.
- Version 2.1.3 - 2016-06-22 - Ramiro Morales
- ===========================================
- - We now publish Linux PEP 513 manylinux wheels on PyPI.
- - Windows official binaries: Rollback changes to Windows binaries we had
- implemented in pymssql 2.1.2; go back to using:
- * A statically linked version of FreeTDS (v0.95.95)
- * No SSL support
- Version 2.1.2 - 2016-02-10 - Ramiro Morales
- ===========================================
- .. attention:: Windows users: You need to download and install additional DLLs
- pymssql version 2.1.2 includes a change in the official Windows binaries:
- FreeTDS isn't statically linked as it happened up to release 2.1.1, as that
- FreeTDS copy lacked SSL support.
- Please see http://pymssql.org/en/latest/freetds.html#windows for futher
- details.
- We are trying to find a balance between security and convenience and will
- be evaluating the situation for future releases. Your feedback is greatly
- welcome.
- Features
- --------
- - Add ability to set TDS protocol version from pymssql when connecting to SQL
- Server. For the remaining pymssql 2.1.x releases its default value will be 7.1
- (GH-323)
- - Add Dockerfile and a Docker image and instructions on how to use it (GH-258).
- This could be a convenient way to use pymssql without having to build stuff.
- See http://pymssql.readthedocs.org/en/latest/intro.html#docker
- Thanks Marc Abramowitz.
- - Floating point values are now accepted as Stored Procedure arguments
- (GH-287). Thanks Runzhou Li (Leo) for the report and Bill Adams for the
- implementation.
- - Send pymssql version in the appname TDS protocol login record field when the
- application doesn't provide one (GH-354)
- Bug fixes
- ---------
- - Fix a couple of very common causes of segmentation faults in presence of
- network a partition between a pymssql-based app and SQL Server (GH-147,
- GH-271) Thanks Marc Abramowitz. See also GH-373.
- - Fix failures and inconsistencies in query parameter interpolation when
- UTF-8-encoded literals are present (GH-185). Thanks Bill Adams. Also, GH-291.
- - Fix ``login_timeout`` parameter of ``pymssql.connect()`` (GH-318)
- - Fixed some cases of ``cursor.rowcont`` having a -1 value after iterating
- over the value returned by pymssql cursor ``fetchmany()`` and ``fetchone()``
- methods (GH-141)
- - Remove automatic treatment of string literals passed in queries that start
- with ``'0x'`` as hexadecimal values (GH-286)
- - Fix build fatal error when using Cython >= 0.22 (GH-311)
- Internals
- ---------
- - Add Appveyor hosted CI setup for running tests on Windows (GH-347)
- - Travis CI: Use newer, faster, container-based infrastructure. Also, test
- against more than one FreeTDS version.
- - Make it possible to build official release files (sdist, wheels) on Travis &
- AppVeyor.
- Version 2.1.1 - 2014-11-25 - Ramiro Morales
- ===========================================
- Features
- --------
- - Custom message handlers (GH-139)
- The DB-Library API includes a callback mechanism so applications can provide
- functions known as *message handlers* that get passed informative messages
- sent by the server which then can be logged, shown to the user, etc.
- ``_mssql`` now allows you to install your own *message handlers* written in
- Python. See the ``_msssql`` examples and reference sections of the
- documentation for more details.
- Thanks Marc Abramowitz.
- - Compatibility with Azure
- It is now possible to transparently connect to `SQL Server instances`_
- accessible as part of the Azure_ cloud services.
- .. note:: If you need to connect to Azure make sure you use FreeTDS 0.91 or
- newer.
- - Customizable per-connection initialization SQL clauses (both in ``pymssql``
- and ``_mssql``) (GH-97)
- It is now possible to customize the SQL statements sent right after the
- connection is established (e.g. ``'SET ANSI_NULLS ON;'``). Previously
- it was a hard-coded list of queries. See the ``_mssql.MSSQLConnection``
- documentation for more details.
- Thanks Marc Abramowitz.
- - Added ability to handle instances of ``uuid.UUID`` passed as parameters for
- SQL queries both in ``pymssql`` and ``_mssql``. (GH-209)
- Thanks Marat Mavlyutov.
- - 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)
- Thanks Marat Mavlyutov.
- - Documentation: Explicitly mention minimum versions supported of Python (2.6)
- and SQL Server (2005).
- - Incremental enhancements to the documentation.
- .. _SQL Server instances: http://www.windowsazure.com/en-us/services/sql-database/
- .. _Azure: https://www.windowsazure.com/
- .. _SQL Server autocommit mode: http://msdn.microsoft.com/en-us/library/ms187878%28v=sql.105%29.aspx
- 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
- Made it work with TDS protocol version 7.2. (GH-211)
- The value returned for TDS version 7.1 is still 8.0 for backward
- compatibility (this is because such feature got added in times when
- Microsoft documentation labeled the two protocol versions that followed 7.0
- as 8.0 and 9.0; later it changed them to 7.1 and 7.2 respectively) and will
- be corrected in a future release (2.2).
- - PEP 249 compliance (GH-251)
- Added type constructors to increase compatibility with other libraries.
- Thanks Aymeric Augustin.
- - 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.
- Version 2.1.0 - 2014-02-25 - `Marc Abramowitz <http://marc-abramowitz.com/>`_
- =============================================================================
- Features
- --------
- - Sphinx-based documentation (GH-149)
- Read it online at http://pymssql.org/
- Thanks, Ramiro Morales!
- See:
- * https://github.com/pymssql/pymssql/pull/149
- * https://github.com/pymssql/pymssql/pull/162
- * https://github.com/pymssql/pymssql/pull/164
- * https://github.com/pymssql/pymssql/pull/165
- * https://github.com/pymssql/pymssql/pull/166
- * https://github.com/pymssql/pymssql/pull/167
- * https://github.com/pymssql/pymssql/pull/169
- * https://github.com/pymssql/pymssql/pull/174
- * https://github.com/pymssql/pymssql/pull/175
- - "Green" support (GH-135)
- Lets you use pymssql with cooperative multi-tasking systems like
- gevent and have pymssql call a callback when it is waiting for a
- response from the server. You can set this callback to yield to
- another greenlet, coroutine, etc. For example, for gevent, you could
- do::
- def wait_callback(read_fileno):
- gevent.socket.wait_read(read_fileno)
- pymssql.set_wait_callback(wait_callback)
- The above is useful if you're say, running a gunicorn server with the
- gevent worker. With this callback in place, when you send a query to
- SQL server and are waiting for a response, you can yield to other
- greenlets and process other requests. This is super useful when you
- have high concurrency and/or slow database queries and lets you use
- less gunicorn worker processes and still handle high concurrency.
- See https://github.com/pymssql/pymssql/pull/135
- - Better error messages.
- E.g.: For a connection failure, instead of:
- pymssql.OperationalError: (20009, 'Net-Lib error during Connection
- refused')
- the dberrstr is also included, resulting in:
- pymssql.OperationalError: (20009, 'DB-Lib error message 20009,
- severity 9:\nUnable to connect: Adaptive Server is unavailable or
- does not exist\nNet-Lib error during Connection refused\n')
- See:
- * https://github.com/pymssql/pymssql/pull/151
- In the area of error messages, we also made this change:
- execute: Raise ColumnsWithoutNamesError when as_dict=True and missing
- column names (GH-160)
- because the previous behavior was very confusing; instead of raising
- an exception, we would just return row dicts with those columns
- missing. This prompted at least one question on the mailing list
- (https://groups.google.com/forum/?fromgroups#!topic/pymssql/JoZpmNZFtxM),
- so we thought it was better to handle this explicitly by raising an
- exception, so the user would understand what went wrong.
- See:
- * https://github.com/pymssql/pymssql/pull/160
- * https://github.com/pymssql/pymssql/pull/168
- - Performance improvements
- You are most likely to notice a difference from these when you are
- fetching a large number of rows.
- * Reworked row fetching (GH-159)
- There was a rather large amount of type conversion occuring when
- fetching a row from pymssql. The number of conversions required have
- been cut down significantly with these changes.
- Thanks Damien, Churchill!
- See:
- * https://github.com/pymssql/pymssql/pull/158
- * https://github.com/pymssql/pymssql/pull/159
- * Modify get_row() to use the CPython tuple API (GH-178)
- This drops the previous method of building up a row tuple and switches
- to using the CPython API, which allows you to create a correctly sized
- tuple at the beginning and simply fill it in. This appears to offer
- around a 10% boost when fetching rows from a table where the data is
- already in memory.
- Thanks Damien, Churchill!
- See:
- * https://github.com/pymssql/pymssql/pull/178
- - MSSQLConnection: Add `with` (context manager) support (GH-171)
- This adds `with` statement support for MSSQLConnection in the `_mssql`
- module -- e.g.::
- with mssqlconn() as conn:
- conn.execute_query("SELECT @@version AS version")
- We already have `with` statement support for the `pymssql` module.
- See:
- * https://github.com/pymssql/pymssql/pull/171
- - Allow passing in binary data (GH-179)
- Use the bytesarray type added in Python 2.6 to signify that this is
- binary data and to quote it accordingly. Also modify the handling of
- str/bytes types checking the first 2 characters for b'0x' and insert
- that as binary data.
- See:
- * https://github.com/pymssql/pymssql/pull/179
- - Add support for binding uuid.UUID instances to stored procedures input
- params (GH-143)
- Thanks, Ramiro Morales!
- See:
- * https://github.com/pymssql/pymssql/pull/143
- * https://github.com/pymssql/pymssql/commit/1689c83878304f735eb38b1c63c31e210b028ea7
- - 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
- * See https://github.com/pymssql/pymssql/commit/fd317df65fa62691c2af377e4661defb721b2699
- - Improved support for using py.test as test runner (GH-183)
- * See: https://github.com/pymssql/pymssql/pull/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!
- * See: https://github.com/pymssql/pymssql/issues/142
- - GH-145 ("Prevent error string growing with repeated failed connection
- attempts.")
- See:
- * https://github.com/pymssql/pymssql/issues/145
- * https://github.com/pymssql/pymssql/pull/146
- - GH-151 ("err_handler: Don't clobber dberrstr with oserrstr")
- * https://github.com/pymssql/pymssql/pull/151
- - GH-152 ("_mssql.pyx: Zero init global last_msg_* vars")
- See: https://github.com/pymssql/pymssql/pull/152
- - GH-177 ("binary columns sometimes are processed as varchar")
- Better mechanism for pymssql to detect that user is passing binary
- data.
- See: https://github.com/pymssql/pymssql/issues/177
- - buffer overflow fix (GH-182)
- * See: https://github.com/pymssql/pymssql/pull/181
- * See: https://github.com/pymssql/pymssql/pull/182
- - Return uniqueidentifer columns as uuid.UUID objects on Python 3
- See `ChangeLog`_ for older history...
- .. _PyPI: https://pypi.python.org/pypi/pymssql/2.0.0
- .. _Travis CI: https://travis-ci.org/pymssql/pymssql
- .. _Cython: http://cython.org/
- .. _ChangeLog: https://github.com/pymssql/pymssql/blob/master/ChangeLog
|