METADATA 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492
  1. Metadata-Version: 2.1
  2. Name: pymssql
  3. Version: 2.1.4
  4. Summary: DB-API interface to Microsoft SQL Server for Python. (new Cython-based version)
  5. Home-page: http://pymssql.org
  6. Author: Damien Churchill
  7. Author-email: damoxc@gmail.com
  8. Maintainer: pymssql development team
  9. Maintainer-email: pymssql@googlegroups.com
  10. License: LGPL
  11. Keywords: mssql,SQL Server,database,DB-API
  12. Platform: any
  13. Classifier: Development Status :: 5 - Production/Stable
  14. Classifier: Intended Audience :: Developers
  15. Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
  16. Classifier: Programming Language :: Python
  17. Classifier: Programming Language :: Python :: 2.7
  18. Classifier: Programming Language :: Python :: 3
  19. Classifier: Programming Language :: Python :: 3.4
  20. Classifier: Programming Language :: Python :: 3.5
  21. Classifier: Programming Language :: Python :: 3.6
  22. Classifier: Programming Language :: Python :: 3.7
  23. Classifier: Programming Language :: Python :: Implementation :: CPython
  24. Classifier: Topic :: Database
  25. Classifier: Topic :: Database :: Database Engines/Servers
  26. Classifier: Topic :: Software Development :: Libraries :: Python Modules
  27. Classifier: Operating System :: Microsoft :: Windows
  28. Classifier: Operating System :: POSIX
  29. Classifier: Operating System :: Unix
  30. pymssql - DB-API interface to Microsoft SQL Server
  31. ==================================================
  32. .. image:: https://travis-ci.org/pymssql/pymssql.svg?branch=master
  33. :target: https://travis-ci.org/pymssql/pymssql
  34. .. image:: https://circleci.com/gh/pymssql/pymssql.svg?style=svg
  35. :target: https://circleci.com/gh/pymssql/pymssql
  36. .. image:: https://ci.appveyor.com/api/projects/status/ts4q4nptm15ac6j7/branch/master?svg=true
  37. :target: https://ci.appveyor.com/project/level12/pymssql/branch/master
  38. .. image:: http://img.shields.io/pypi/dm/pymssql.svg
  39. :target: https://pypi.python.org/pypi/pymssql/
  40. .. image:: http://img.shields.io/pypi/v/pymssql.svg
  41. :target: https://pypi.python.org/pypi/pymssql/
  42. A simple database interface for `Python`_ that builds on top of `FreeTDS`_ to
  43. provide a Python DB-API (`PEP-249`_) interface to `Microsoft SQL Server`_.
  44. .. _Microsoft SQL Server: http://www.microsoft.com/sqlserver/
  45. .. _Python: http://www.python.org/
  46. .. _PEP-249: http://www.python.org/dev/peps/pep-0249/
  47. .. _FreeTDS: http://www.freetds.org/
  48. Detailed information on pymssql is available on the website:
  49. http://pymssql.org
  50. New development is happening on GitHub at:
  51. https://github.com/pymssql/pymssql
  52. There is a Google Group for discussion at:
  53. https://groups.google.com/forum/?fromgroups#!forum/pymssql
  54. Do you use pymssql?
  55. -------------------
  56. Can you take a minute and fill out this survey to help us prioritize development tasks?
  57. https://www.surveymonkey.com/s/KMQ8BM5
  58. .. image:: https://d2weczhvl823v0.cloudfront.net/pymssql/pymssql/trend.png
  59. :alt: Bitdeli badge
  60. :target: https://bitdeli.com/free
  61. Recent Changes
  62. ==============
  63. Version 2.1.4 - 2018-08-28
  64. ==============================
  65. General
  66. -------
  67. - Drop support for versions of FreeTDS older than 0.91.
  68. - Add Python 3.7 support
  69. - Drop Python 3.3 support
  70. Features
  71. --------
  72. - Support for new in SQL Server 2008 ``DATE``, ``TIME`` and ``DATETIME2`` data
  73. types (GH-156). The following conditions need to be additionally met so
  74. values of these column types can be returned from the database as their
  75. native corresponding Python data types instead of as strings:
  76. * Underlying FreeTDS must be 0.95 or newer.
  77. * TDS protocol version in use must be 7.3 or newer.
  78. Thanks Ed Avis for the implementation. (GH-331)
  79. Bug fixes
  80. ---------
  81. - Fix ``tds_version`` ``_mssql`` connection property value for TDS version.
  82. 7.1 is actually 7.1 and not 8.0.
  83. Version 2.1.3 - 2016-06-22 - Ramiro Morales
  84. ===========================================
  85. - We now publish Linux PEP 513 manylinux wheels on PyPI.
  86. - Windows official binaries: Rollback changes to Windows binaries we had
  87. implemented in pymssql 2.1.2; go back to using:
  88. * A statically linked version of FreeTDS (v0.95.95)
  89. * No SSL support
  90. Version 2.1.2 - 2016-02-10 - Ramiro Morales
  91. ===========================================
  92. .. attention:: Windows users: You need to download and install additional DLLs
  93. pymssql version 2.1.2 includes a change in the official Windows binaries:
  94. FreeTDS isn't statically linked as it happened up to release 2.1.1, as that
  95. FreeTDS copy lacked SSL support.
  96. Please see http://pymssql.org/en/latest/freetds.html#windows for futher
  97. details.
  98. We are trying to find a balance between security and convenience and will
  99. be evaluating the situation for future releases. Your feedback is greatly
  100. welcome.
  101. Features
  102. --------
  103. - Add ability to set TDS protocol version from pymssql when connecting to SQL
  104. Server. For the remaining pymssql 2.1.x releases its default value will be 7.1
  105. (GH-323)
  106. - Add Dockerfile and a Docker image and instructions on how to use it (GH-258).
  107. This could be a convenient way to use pymssql without having to build stuff.
  108. See http://pymssql.readthedocs.org/en/latest/intro.html#docker
  109. Thanks Marc Abramowitz.
  110. - Floating point values are now accepted as Stored Procedure arguments
  111. (GH-287). Thanks Runzhou Li (Leo) for the report and Bill Adams for the
  112. implementation.
  113. - Send pymssql version in the appname TDS protocol login record field when the
  114. application doesn't provide one (GH-354)
  115. Bug fixes
  116. ---------
  117. - Fix a couple of very common causes of segmentation faults in presence of
  118. network a partition between a pymssql-based app and SQL Server (GH-147,
  119. GH-271) Thanks Marc Abramowitz. See also GH-373.
  120. - Fix failures and inconsistencies in query parameter interpolation when
  121. UTF-8-encoded literals are present (GH-185). Thanks Bill Adams. Also, GH-291.
  122. - Fix ``login_timeout`` parameter of ``pymssql.connect()`` (GH-318)
  123. - Fixed some cases of ``cursor.rowcont`` having a -1 value after iterating
  124. over the value returned by pymssql cursor ``fetchmany()`` and ``fetchone()``
  125. methods (GH-141)
  126. - Remove automatic treatment of string literals passed in queries that start
  127. with ``'0x'`` as hexadecimal values (GH-286)
  128. - Fix build fatal error when using Cython >= 0.22 (GH-311)
  129. Internals
  130. ---------
  131. - Add Appveyor hosted CI setup for running tests on Windows (GH-347)
  132. - Travis CI: Use newer, faster, container-based infrastructure. Also, test
  133. against more than one FreeTDS version.
  134. - Make it possible to build official release files (sdist, wheels) on Travis &
  135. AppVeyor.
  136. Version 2.1.1 - 2014-11-25 - Ramiro Morales
  137. ===========================================
  138. Features
  139. --------
  140. - Custom message handlers (GH-139)
  141. The DB-Library API includes a callback mechanism so applications can provide
  142. functions known as *message handlers* that get passed informative messages
  143. sent by the server which then can be logged, shown to the user, etc.
  144. ``_mssql`` now allows you to install your own *message handlers* written in
  145. Python. See the ``_msssql`` examples and reference sections of the
  146. documentation for more details.
  147. Thanks Marc Abramowitz.
  148. - Compatibility with Azure
  149. It is now possible to transparently connect to `SQL Server instances`_
  150. accessible as part of the Azure_ cloud services.
  151. .. note:: If you need to connect to Azure make sure you use FreeTDS 0.91 or
  152. newer.
  153. - Customizable per-connection initialization SQL clauses (both in ``pymssql``
  154. and ``_mssql``) (GH-97)
  155. It is now possible to customize the SQL statements sent right after the
  156. connection is established (e.g. ``'SET ANSI_NULLS ON;'``). Previously
  157. it was a hard-coded list of queries. See the ``_mssql.MSSQLConnection``
  158. documentation for more details.
  159. Thanks Marc Abramowitz.
  160. - Added ability to handle instances of ``uuid.UUID`` passed as parameters for
  161. SQL queries both in ``pymssql`` and ``_mssql``. (GH-209)
  162. Thanks Marat Mavlyutov.
  163. - Allow using `SQL Server autocommit mode`_ from ``pymssql`` at connection
  164. opening time. This allows e.g. DDL statements like ``DROP DATABASE`` to be
  165. executed. (GH-210)
  166. Thanks Marat Mavlyutov.
  167. - Documentation: Explicitly mention minimum versions supported of Python (2.6)
  168. and SQL Server (2005).
  169. - Incremental enhancements to the documentation.
  170. .. _SQL Server instances: http://www.windowsazure.com/en-us/services/sql-database/
  171. .. _Azure: https://www.windowsazure.com/
  172. .. _SQL Server autocommit mode: http://msdn.microsoft.com/en-us/library/ms187878%28v=sql.105%29.aspx
  173. Bug fixes
  174. ---------
  175. - Handle errors when calling Stored Procedures via the ``.callproc()`` pymssql
  176. cursor method. Now it will raise a DB-API ``DatabaseException``; previously
  177. it allowed a ``_mssql.MSSQLDatabaseException`` exception to surface.
  178. - Fixes in ``tds_version`` ``_mssql`` connections property value
  179. Made it work with TDS protocol version 7.2. (GH-211)
  180. The value returned for TDS version 7.1 is still 8.0 for backward
  181. compatibility (this is because such feature got added in times when
  182. Microsoft documentation labeled the two protocol versions that followed 7.0
  183. as 8.0 and 9.0; later it changed them to 7.1 and 7.2 respectively) and will
  184. be corrected in a future release (2.2).
  185. - PEP 249 compliance (GH-251)
  186. Added type constructors to increase compatibility with other libraries.
  187. Thanks Aymeric Augustin.
  188. - pymssql: Made handling of integer SP params more robust (GH-237)
  189. - Check lower bound value when convering integer values from to Python to SQL
  190. (GH-238)
  191. Internals
  192. ---------
  193. - Completed migration of the test suite from nose to py.test.
  194. - Added a few more test cases to our suite.
  195. - Tests: Modified a couple of test cases so the full suite can be run against
  196. SQL Server 2005.
  197. - Added testing of successful build of documentation to Travis CI script.
  198. - Build process: Cleanup intermediate and ad-hoc anciliary files (GH-231,
  199. GH-273)
  200. - setup.py: Fixed handling of release tarballs contents so no extraneous files
  201. are shipped and the documentation tree is actually included. Also, removed
  202. unused code.
  203. Version 2.1.0 - 2014-02-25 - `Marc Abramowitz <http://marc-abramowitz.com/>`_
  204. =============================================================================
  205. Features
  206. --------
  207. - Sphinx-based documentation (GH-149)
  208. Read it online at http://pymssql.org/
  209. Thanks, Ramiro Morales!
  210. See:
  211. * https://github.com/pymssql/pymssql/pull/149
  212. * https://github.com/pymssql/pymssql/pull/162
  213. * https://github.com/pymssql/pymssql/pull/164
  214. * https://github.com/pymssql/pymssql/pull/165
  215. * https://github.com/pymssql/pymssql/pull/166
  216. * https://github.com/pymssql/pymssql/pull/167
  217. * https://github.com/pymssql/pymssql/pull/169
  218. * https://github.com/pymssql/pymssql/pull/174
  219. * https://github.com/pymssql/pymssql/pull/175
  220. - "Green" support (GH-135)
  221. Lets you use pymssql with cooperative multi-tasking systems like
  222. gevent and have pymssql call a callback when it is waiting for a
  223. response from the server. You can set this callback to yield to
  224. another greenlet, coroutine, etc. For example, for gevent, you could
  225. do::
  226. def wait_callback(read_fileno):
  227. gevent.socket.wait_read(read_fileno)
  228. pymssql.set_wait_callback(wait_callback)
  229. The above is useful if you're say, running a gunicorn server with the
  230. gevent worker. With this callback in place, when you send a query to
  231. SQL server and are waiting for a response, you can yield to other
  232. greenlets and process other requests. This is super useful when you
  233. have high concurrency and/or slow database queries and lets you use
  234. less gunicorn worker processes and still handle high concurrency.
  235. See https://github.com/pymssql/pymssql/pull/135
  236. - Better error messages.
  237. E.g.: For a connection failure, instead of:
  238. pymssql.OperationalError: (20009, 'Net-Lib error during Connection
  239. refused')
  240. the dberrstr is also included, resulting in:
  241. pymssql.OperationalError: (20009, 'DB-Lib error message 20009,
  242. severity 9:\nUnable to connect: Adaptive Server is unavailable or
  243. does not exist\nNet-Lib error during Connection refused\n')
  244. See:
  245. * https://github.com/pymssql/pymssql/pull/151
  246. In the area of error messages, we also made this change:
  247. execute: Raise ColumnsWithoutNamesError when as_dict=True and missing
  248. column names (GH-160)
  249. because the previous behavior was very confusing; instead of raising
  250. an exception, we would just return row dicts with those columns
  251. missing. This prompted at least one question on the mailing list
  252. (https://groups.google.com/forum/?fromgroups#!topic/pymssql/JoZpmNZFtxM),
  253. so we thought it was better to handle this explicitly by raising an
  254. exception, so the user would understand what went wrong.
  255. See:
  256. * https://github.com/pymssql/pymssql/pull/160
  257. * https://github.com/pymssql/pymssql/pull/168
  258. - Performance improvements
  259. You are most likely to notice a difference from these when you are
  260. fetching a large number of rows.
  261. * Reworked row fetching (GH-159)
  262. There was a rather large amount of type conversion occuring when
  263. fetching a row from pymssql. The number of conversions required have
  264. been cut down significantly with these changes.
  265. Thanks Damien, Churchill!
  266. See:
  267. * https://github.com/pymssql/pymssql/pull/158
  268. * https://github.com/pymssql/pymssql/pull/159
  269. * Modify get_row() to use the CPython tuple API (GH-178)
  270. This drops the previous method of building up a row tuple and switches
  271. to using the CPython API, which allows you to create a correctly sized
  272. tuple at the beginning and simply fill it in. This appears to offer
  273. around a 10% boost when fetching rows from a table where the data is
  274. already in memory.
  275. Thanks Damien, Churchill!
  276. See:
  277. * https://github.com/pymssql/pymssql/pull/178
  278. - MSSQLConnection: Add `with` (context manager) support (GH-171)
  279. This adds `with` statement support for MSSQLConnection in the `_mssql`
  280. module -- e.g.::
  281. with mssqlconn() as conn:
  282. conn.execute_query("SELECT @@version AS version")
  283. We already have `with` statement support for the `pymssql` module.
  284. See:
  285. * https://github.com/pymssql/pymssql/pull/171
  286. - Allow passing in binary data (GH-179)
  287. Use the bytesarray type added in Python 2.6 to signify that this is
  288. binary data and to quote it accordingly. Also modify the handling of
  289. str/bytes types checking the first 2 characters for b'0x' and insert
  290. that as binary data.
  291. See:
  292. * https://github.com/pymssql/pymssql/pull/179
  293. - Add support for binding uuid.UUID instances to stored procedures input
  294. params (GH-143)
  295. Thanks, Ramiro Morales!
  296. See:
  297. * https://github.com/pymssql/pymssql/pull/143
  298. * https://github.com/pymssql/pymssql/commit/1689c83878304f735eb38b1c63c31e210b028ea7
  299. - The version number is now stored in one place, in pymssql_version.h
  300. This makes it easier to update the version number and not forget any
  301. places, like I did with pymssql 2.0.1
  302. * See https://github.com/pymssql/pymssql/commit/fd317df65fa62691c2af377e4661defb721b2699
  303. - Improved support for using py.test as test runner (GH-183)
  304. * See: https://github.com/pymssql/pymssql/pull/183
  305. - Improved PEP-8 and pylint compliance
  306. Bug Fixes
  307. ---------
  308. - GH-142 ("Change how ``*.pyx`` files are included in package") - this
  309. should prevent pymssql.pyx and _mssql.pyx from getting copied into the
  310. root of your virtualenv. Thanks, @Arfrever!
  311. * See: https://github.com/pymssql/pymssql/issues/142
  312. - GH-145 ("Prevent error string growing with repeated failed connection
  313. attempts.")
  314. See:
  315. * https://github.com/pymssql/pymssql/issues/145
  316. * https://github.com/pymssql/pymssql/pull/146
  317. - GH-151 ("err_handler: Don't clobber dberrstr with oserrstr")
  318. * https://github.com/pymssql/pymssql/pull/151
  319. - GH-152 ("_mssql.pyx: Zero init global last_msg_* vars")
  320. See: https://github.com/pymssql/pymssql/pull/152
  321. - GH-177 ("binary columns sometimes are processed as varchar")
  322. Better mechanism for pymssql to detect that user is passing binary
  323. data.
  324. See: https://github.com/pymssql/pymssql/issues/177
  325. - buffer overflow fix (GH-182)
  326. * See: https://github.com/pymssql/pymssql/pull/181
  327. * See: https://github.com/pymssql/pymssql/pull/182
  328. - Return uniqueidentifer columns as uuid.UUID objects on Python 3
  329. See `ChangeLog`_ for older history...
  330. .. _PyPI: https://pypi.python.org/pypi/pymssql/2.0.0
  331. .. _Travis CI: https://travis-ci.org/pymssql/pymssql
  332. .. _Cython: http://cython.org/
  333. .. _ChangeLog: https://github.com/pymssql/pymssql/blob/master/ChangeLog