mirror of
https://github.com/hanzoai/pymssql.git
synced 2026-10-30 14:54:29 +00:00
730 lines
30 KiB
Plaintext
730 lines
30 KiB
Plaintext
Change Log
|
|
==========
|
|
|
|
Version 2.1.1 - To be released
|
|
==============================
|
|
|
|
Features
|
|
--------
|
|
|
|
- Custom message handlers (GH-139)
|
|
|
|
The DB-Library API includes a callback mechanism so application can provide
|
|
functions known as *message handlers* which 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.
|
|
|
|
- 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)
|
|
|
|
It is now possible to customize the SQL queries sent righ 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.
|
|
|
|
.. _SQL Server instances: http://www.windowsazure.com/en-us/services/sql-database/
|
|
.. _Azure: https://www.windowsazure.com/
|
|
|
|
Bug fixes
|
|
---------
|
|
|
|
- Handle errors when calling Stored Procedures via the ``.callproc()`` pymssql
|
|
cursor method. Now it will raise a DB-API ``DatabaseException``; previously
|
|
it left a ``_mssql.MSSQLDatabaseException`` exception to surface.
|
|
|
|
- Fixes in ``tds_version`` ``_mssql`` connections property value
|
|
|
|
Made it work with TDS protocol version 7.2.
|
|
|
|
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.
|
|
|
|
- PEP 249 compliance
|
|
|
|
Added type constructors to increase compatibility with other libraries.
|
|
|
|
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
|
|
|
|
|
|
Version 2.0.1 - 2013-10-27 - `Marc Abramowitz <http://marc-abramowitz.com/>`_
|
|
-----------------------------------------------------------------------------
|
|
* MANIFEST.in: Add "\*.rst" to prevent install error: "IOError: [Errno 2] No
|
|
such file or directory: 'ChangeLog_highlights.rst'"
|
|
|
|
Version 2.0.0 - 2013-10-25 - `Marc Abramowitz <http://marc-abramowitz.com/>`_
|
|
-----------------------------------------------------------------------------
|
|
* First official release of pymssql 2.X (`Cython`_-based code) to `PyPI`_!
|
|
* Compared to pymssql 1.X, this version offers:
|
|
|
|
* Better performance
|
|
* Thread safety
|
|
* Fuller test suite
|
|
* Support for Python 3
|
|
* Continuous integration via `Travis CI`_
|
|
* Easier to understand code, due to `Cython`_
|
|
|
|
.. _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
|
|
|
|
Version 2.0.0b1-dev-20130403 - 2013-04-03 - Marc Abramowitz <[email protected]>
|
|
--------------------------------------------------------------------------------
|
|
* Added tag 2.0.0b1-dev-20130403 for changeset 5d0c980ef8b8
|
|
(b2b2748f7f88)
|
|
* Fix issue 118 ("datetime conversion to sql is not converting
|
|
sub-seconds correctly") - Pad microseconds to 3 digits so it gets
|
|
converted correctly. Thanks, Ken Robbins (kenneth.robbins at gmail)!
|
|
(5d0c980ef8b8)
|
|
* Make tests/test_queries.py actually run tests. It looked like it was
|
|
half-finished and not working. This fills it out and makes it work and
|
|
actually test a few things. (5373541eb899)
|
|
* setup.py: Make it possible to use `python setup.py test`
|
|
(3c32acb41251)
|
|
* Bunch of fixes to eliminate build/install warnings (adb0fc75bfd0,
|
|
fe6cb9aa5120, 446f0005e638, e8d4b19d87b1, 90b2aa2ea01f, 7bb29af4b22c)
|
|
* Add `pymssql.get_dbversion` function that wraps the dbversion
|
|
function in FreeTDS. (1158a5d2be9c)
|
|
* Add a `get_freetds_version` function (a4286224dcf2)
|
|
* Fix issue 109 ("Failure to pass Unicode characters to callproc;
|
|
failing test:
|
|
tests.test_sprocs.TestCallProcFancy.testCallProcWithUnicodeStringWithRussianCharacters"):
|
|
Skip test because it fails with some versions of FreeTDS but passes
|
|
with others. (d05341273673)
|
|
* Fix issue 116 ("A few tests fail if running on a system that has SQL
|
|
Server available on port 1433") (0fc4086447fe)
|
|
* Modify tests/test_config.py to use server='dontnameyourserverthis'
|
|
when doing various tests so it doesn't try to connect to a SQL
|
|
Server listening on localhost:1433 (0fc4086447fe)
|
|
* tox.ini: Add {posargs:-w tests -v} to nosetests invocation so that
|
|
we can pass arguments to tox -- e.g.: to run only specific tests
|
|
(a105878d500d)
|
|
* tox.ini: Add "ipdb" to deps, because the IPython debugger is very
|
|
nice for debugging why tests are failing (be9ee40156cb)
|
|
* Fix issue 114 ("Fix SP name handling in threaded test so we can
|
|
actually run it.") (6ac2b75747ad)
|
|
* Fix issue 100 (Error when executing setup.py {build,develop} on a
|
|
system with no setuptools: "name 'STDevelopCmd' is not defined")
|
|
(5222ee37b2ab)
|
|
* Issue 45 ("Make SQLAlchemy tests part of our testing process"): Add
|
|
tests/run_sqlalchemy_tests.py for running the SQLAlchemy test suite
|
|
with pymssql using the server configured in tests/tests.cfg
|
|
(999d9dbe791b)
|
|
* Fix issue 92 ("Cursor fetch* methods return redundant keys for
|
|
column names and column numbers.") (08ae783880dd)
|
|
* tests/test_connection_as_dict.py:
|
|
bug 18 ("FetchAll fails to return rows when running against a
|
|
connection instantiated with as_dict=True."): Add a test which
|
|
illustrates that the issue is resolved. (058d761cc761)
|
|
* Fix issue 60 ("cursor.execute raise UnicodeDecodeError if query and
|
|
params in unicode"): Add patch from tonal.promsoft and add tests.
|
|
(49210c03a6cf)
|
|
* Add *.c to MANIFEST.in so they get included in sdist and end-users
|
|
don't need to run Cython. (25c1a84aac0c)
|
|
* Fix issue 56 ("callproc do not accept None and unicode string in
|
|
parameters"): Add patch from tonal.promsoft and add tests
|
|
(939eb7939136)
|
|
* version 2.0.0b1-dev-20130403
|
|
|
|
Version 2.0.0b1-dev-20130108 - 2013-01-08 - Marc Abramowitz <[email protected]>
|
|
--------------------------------------------------------------------------------
|
|
* change: put compiled FreeTDS for Windows in pymmsql source, add build
|
|
instructions to README, better Visual Studio support (#61)
|
|
+ feature: support hostname, port, tds_version connect params without freetds.config
|
|
+ feature: make pymssql.Cursor.rownumber give accurate results for executemany()
|
|
+ feature: bundle FreeTDS libraries & use static libary includes to avoid
|
|
most end-user-developers needing to mess with FreeTDS
|
|
* change: speed up handling of tuples/lists when quoting (dieterv77)
|
|
- bug #46: better handling for byte strings that don't represent ascii data
|
|
- bug: custom param handling avoids bugs when '%' is used in the SQL (modulus operator)
|
|
- bug: fix pymssql.DBAPIType so that comparisons work as expected
|
|
- bug: fetch*() functions would erroneously raise OperationalError when rows exhausted
|
|
- bug #47: fix threaded tests crashing
|
|
- bug #79: fix prevision problem with floats (dieterv77)
|
|
- bug #14: Add setup.py voodoo that undoes setuptools monkeypatching
|
|
that causes `pip install` to not work with setuptools unless pyrex
|
|
is installed. (86a73a19d5bd)
|
|
- bug #106 (OS X: "Symbol not found: _dbadata" error when importing
|
|
pymssql): Fix OS X build by modifying setup.py so that on OS X we
|
|
don't attempt to link with the bundled FreeTDS *Linux* library.
|
|
(88d15d125586)
|
|
+ feature: Add support for running tox (http://tox.testrun.org/) to
|
|
test across multiple Python versions. (5fa7a6548b31)
|
|
- bug #44: Remove test_long_identifiers from test_sqlalchemy.py
|
|
because SQLAlchemy removed the 30 character limit on identifiers.
|
|
(6585d44eea33)
|
|
- feature: Add setup.py voodoo so that Cython can automatially be
|
|
downloaded if it's not installed instead of an ImportError
|
|
(bb459dd7fd7e)
|
|
- bug #105: Link with librt on Unix platforms that have it (like
|
|
Linux, but not FreeBSD or OS X) to prevent 'undefined symbol:
|
|
clock_gettime' error when importing pymssql. (2b255b1c035f)
|
|
|
|
Tue Nov 02 09:33:00 2010 Damien Churchill <[email protected]>
|
|
* _mssql.pyx:
|
|
+ feature: add support for nullable ints and nullable bits in
|
|
stored procedure parameters.
|
|
+ feature: add support for positional parameters in stored
|
|
procedures.
|
|
+ bugfix: add support for using type subclasses as parameters
|
|
+ bugfix: correctly report incorrect logins.
|
|
+ feature: add support for setting the application name
|
|
+ bugfix: accept more than just the decimal.Decimal type for
|
|
money and decimal parameters.
|
|
+ bugfix: fix raising exceptions from convert_python_value()
|
|
+ bugfix: fix binding parameters of int type when larger than
|
|
2^31 - 1 (raise exception).
|
|
+ bugfix: use sprintf rather than python strings in the msg_handler
|
|
+ bugfix: use sprintf rather than python strings in the err_handler
|
|
+ bugfix: make compatible with Cython 0.13
|
|
+ feature: remove the trusted parameter to connect()
|
|
+ bugfix: fix issue 15, not setting implicit_transactions on connect
|
|
+ bugfix: fix issue 32, setting the wrong hostname on login
|
|
* pymssql.pyx:
|
|
+ feature: add initial support for callproc()
|
|
+ feature: add support for setting the application name
|
|
+ bugfix: fix issue #7, thanks has.temp3
|
|
+ bugfix: fix issue #10, rowcount property being incorrect
|
|
+ bugfix: make compatible with Cython 0.13
|
|
+ feature: remove the trusted parameter to connect()
|
|
+ feature: add returnvalue property with the result of a callproc()
|
|
call.
|
|
+ feature: fix raising exceptions when args[0] is not a string
|
|
* MANIFEST.in:
|
|
+ feature: include the tests
|
|
+ bugfix: include ez_setup.py
|
|
* setup.py:
|
|
+ bugfix: fix issue #8, ZipFile don't has the attribute
|
|
'extractall' error for python2.5
|
|
* version 1.9.909
|
|
|
|
Wed Apr 28 11:10:00 2010 Damien Churchill <[email protected]>
|
|
* MANIFEST.in:
|
|
+ bugfix: fix recursive-include for .pyrex
|
|
* version 1.9.908
|
|
|
|
Wed Apr 21 16:02:00 2010 Damien Churchill <[email protected]>
|
|
* MANIFEST.in:
|
|
+ bugfix: include missing .pyrex folder
|
|
* version 1.9.907
|
|
|
|
Fri Apr 09 13:16:00 2010 Damien Churchill <[email protected]>
|
|
* setup.py:
|
|
+ bugfix: include hack faking that pyrex is installed to workaround
|
|
a bug in setuptools.
|
|
* _mssql.pyx:
|
|
+ bugfix: add support for connecting using "." and "(local)"
|
|
* pymssql.pyx:
|
|
+ feature: add the output type to be used with callproc()
|
|
+ depreciate: the dsn keyword param to pymssql.connect()
|
|
+ feature: add the get/set_max_connections to pymssql
|
|
* sqlfront.pxd:
|
|
+ feature: tidy up and remove all unused methods.
|
|
* version 1.9.906
|
|
|
|
Mon Nov 23 13:37:00 2009 Damien Churchill <[email protected]>
|
|
* _mssql.pyx:
|
|
+ feature: add support for varbinary types
|
|
+ feature: add support for passing in charset to _quote_data
|
|
+ bugfix: rename MSSQLConnection.next_result to
|
|
MSSQLConnection.nextresult as before
|
|
+ bugfix: set the charset upon login
|
|
+ feature: rewrite _remove_locale using C types instead, 20x faster
|
|
+ feature: add a charset param to quote_data and relating funcs that
|
|
allows the charset to be specified for unicode encodes.
|
|
* pymssql.pyx:
|
|
+ feature: add DSN support that was missing
|
|
+ bugfix: fix rowcount property
|
|
* sqlfront.pxd:
|
|
add DBSETLCHARSET
|
|
* tests:
|
|
+ feature: add test for multiple results
|
|
* setup.py:
|
|
+ feature: fix building on windows
|
|
+ feature: clean generated C files in the clean command
|
|
+ feature: automatically extract freetds.zip on windows when
|
|
building
|
|
* version 1.9.903
|
|
|
|
Fri Nov 20 13:03:00 2009 Damien Churchill <[email protected]>
|
|
* mssqldbmodule.c: deprecated in favour of _mssql.pyx
|
|
* pymssql.py: deprecated in favour of pymssql.py
|
|
+ feature: added support for uniqueidentifier types
|
|
+ feature: added support for calling remote procedures programmatically
|
|
* version 1.9.901
|
|
|
|
Tue May 12 15:43:00 2009 Andrzej Kukula <[email protected]>
|
|
* mssqldbmodule.c:
|
|
+ bugfix: pymssql didn't return second, third etc. result set
|
|
in case of multi-result statements, e.g. 'SELECT 1; SELECT 2',
|
|
thanks Damien Churchill <[email protected]>
|
|
|
|
Wed Apr 29 19:31:00 2009 Andrzej Kukula <[email protected]>
|
|
* mssqldbmodule.c:
|
|
+ fixed possible memory leak, thanks Evgeny Cherkashin
|
|
<[email protected]>
|
|
|
|
Tue Apr 23 23:00:00 2009 Andrzej Kukula <[email protected]>
|
|
+ bugfix: fixed rare quoting bug in select_db()
|
|
+ feature: added 'max_conn' parameter to pymssql.connect() and
|
|
_mssql.connect() which defaults to 25, thanks Daniel Watrous
|
|
<[email protected]>
|
|
* nagios-plugin update - thanks Josselin Mouette <[email protected]>:
|
|
+ Include a -P port option, to avoid having to passing it with the
|
|
host name
|
|
+ Fix the encoding of the comments; utf-8 is the declared encoding
|
|
of the file and must be followed
|
|
+ Fix a typo in the SQL syntax
|
|
+ Connect explicitly to the "master" database (required since 1.0.0)
|
|
+ Improve perfdata output.
|
|
* version 1.0.2
|
|
|
|
Tue Apr 21 22:56:00 2009 Andrzej Kukula <[email protected]>
|
|
* mssqldbmodule.c:
|
|
+ bugfix in format_and_run_query(): query strings were sometimes
|
|
overwritten with garbage due to DECREF in wrong place; thanks
|
|
Igor Nazarenko <[email protected]>
|
|
+ bugfix in get_result(): if a query batch contained DECLARE or
|
|
possibly other T-SQL statements, no results were returned
|
|
thanks Kay Schluehr <[email protected]>
|
|
+ bugfix in execute_scalar(): check if there are any columns in result
|
|
+ bugfix: check for FAIL after each dbnextrow()
|
|
+ feature: Add support for bigint - #2660972; thanks Alexandr
|
|
Zamaraev <[email protected]>
|
|
* pymssql.c:
|
|
+ bugfix in execute(): if execute is called without second argument,
|
|
don't treat '%' in query string as formatting character; restored
|
|
compatibility with common sense and with pymssql < 1.0.0; thanks
|
|
Corey Bertram <[email protected]>,
|
|
Wes McKinney <[email protected]>
|
|
+ feature: it is possible to specify 'as_dict' to pymssql.connect
|
|
and rows will be returned as dictionaries instead of tuples;
|
|
thanks Daniel Watrous <[email protected]>
|
|
|
|
Thu Jan 30 18:36:00 2009 Andrzej Kukula <[email protected]>
|
|
* mssqldbmodule.c:
|
|
+ Pyssize_t error on x64 - thanks Josselin Mouette <[email protected]>
|
|
+ critical charset updates, thanks Josselin Mouette <[email protected]>
|
|
+ more Py_ssize_t updates, further code cleanups
|
|
+ fixed some compiler warnings
|
|
* pymssql.py:
|
|
+ execute() failed, thanks Josselin Mouette <[email protected]>
|
|
+ critical charset updates, thanks Josselin Mouette <[email protected]>
|
|
+ removed warnings, users don't want them and they are not 'MUST'
|
|
priority in DB-API spec
|
|
* nagios-plugin: introducted Nagios plugin, thanks Julien Blache
|
|
and Josselin Mouette
|
|
* version 1.0.1
|
|
|
|
Thu Jan 29 19:23:00 2009 Andrzej Kukula <[email protected]>
|
|
* version 1.0.0
|
|
* so many changes I'll not put them here, I'll document
|
|
changes from now on.
|
|
|
|
Mon Sep 25 20:18:00 2006 Andrzej Kukula <[email protected]>
|
|
* setup.py: fix for Fink (http://Fink.SF.Net) under OS X (thanks
|
|
Terrence Brannon <[email protected]>)
|
|
|
|
Sun Sep 24 10:44:00 2006 Andrzej Kukula <[email protected]>
|
|
* setup.py:
|
|
+ it can now dynamically determine the path to SQL 2000 Developer
|
|
Tools, if win32api and win32con modules are available
|
|
+ simple Python version check to prevent most frequently asked
|
|
question
|
|
+ version 0.8.0
|
|
|
|
Wed Sep 13 01:20:00 2006 Andrzej Kukula <[email protected]>
|
|
* mssqldbmodule.c:
|
|
+ corrected misspellings in docstrings
|
|
+ fixed segfault on connection close with Python 2.5; thanks
|
|
Justin Francis <[email protected]>
|
|
* pymssql.py:
|
|
+ fixed two minor DB-API incompatibilities (thanks Matthew Good
|
|
<[email protected]>)
|
|
+ fixed datetime quoting (thanks Jan Finell <[email protected]>)
|
|
* pymssql should be able to build on cygwin (thanks
|
|
[email protected])
|
|
* docstring fixes, webpage doc updates
|
|
|
|
Tue May 15 03:18:00 2006 Jooncheol Park <[email protected]>
|
|
* setup.py, PKG-INFO, README: license change to LGPL
|
|
|
|
Wed Mar 15 08:18:00 2006 Andrzej Kukula <[email protected]>
|
|
* pymssql.py: fixed datetime issue (thanks Jan Finell
|
|
<[email protected]>)
|
|
|
|
Fri Feb 24 16:11:00 2006 Andrzej Kukula <[email protected]>
|
|
* mssqldbmodule.c: fixed typos in docstrings (thanks Konstantin
|
|
Veretennicov)
|
|
|
|
Tue Dec 27 15:14:00 2005 Andrzej Kukula <[email protected]>
|
|
* mssqldbmodule.c: bug fixes, improvements and cleanups:
|
|
+ implemented set_login_timeout() and set_query_timeout() functions;
|
|
+ eliminated unnecessary ODBC code
|
|
+ cleaned up exception code and improved exception handling,
|
|
SF bug #1335560
|
|
+ web page now correctly mentions FreeTDS 0.63 as the minimal
|
|
required version
|
|
+ stdmsg() method is now deprecated; all errors are concatenated
|
|
in errmsg()
|
|
+ implemented min_error_severity: all errors at or above that
|
|
level will raise the exception; if the severity is lower, they
|
|
will just accumulate in errmsg()
|
|
+ added setting coltype to NUMBER for float types (found by
|
|
Jakub Labath)
|
|
* setup.py:
|
|
+ reincarnated ntwdblib.dll which turned out to be redistributable
|
|
after all; pymssql includes the latest version that allows
|
|
connecting to SQL 2005; eliminated some stupid notes from the
|
|
web page and will ease set up process for users
|
|
* apitest_mssql.py: new file
|
|
+ provided by Jakub Labath, this file performs some basic DB-API
|
|
compliance tests; it immediately triggered the unicode bug
|
|
* version 0.7.4
|
|
|
|
Sat Oct 22 19:41:00 2005 Andrzej Kukula <[email protected]>
|
|
* mssqldbmodule.c: multithreading improvements - from now on pymssql
|
|
is thread-safe, it releases GIL in proper places; idea and initial
|
|
patch by John-Peter Lee (thanks very much!)
|
|
|
|
Mon Sep 5 23:29:00 2005 Andrzej Kukula <[email protected]>
|
|
* setup.py: fixed an installation issue regarding importing pymssql
|
|
that imports _mssql which isn't installed, and blows up with
|
|
AttributeError... (thanks Vsevolod Stakhov)
|
|
* version 0.7.3
|
|
|
|
Mon Sep 5 00:32:00 2005 Andrzej Kukula <[email protected]>
|
|
* version 0.7.2
|
|
|
|
Sun Sep 4 23:12:00 2005 Andrzej Kukula <[email protected]>
|
|
|
|
* mssqldbmodule.c: improvements and cleanups:
|
|
+ improved error handling: if the db function fails, the exception
|
|
is thrown automatically and immediately; no need to check
|
|
return value of conn.query(), just catch _mssql.error
|
|
+ improved error handling: it is possible that MS SQL calls message
|
|
handler twice; now _mssql catches and reports both of them at once
|
|
+ improved error handling: in some cases _mssql.query() returns
|
|
success but the results are invalid; now it is handled properly
|
|
(example "SELECT CAST(1234.5678 AS NUMERIC(4,2))")
|
|
+ added proper connection initialization: a number of SET statements
|
|
are executed upon connection setup to set sensible SQL behaviour;
|
|
see source for details; one needs to unset them if needed
|
|
+ implemented min_{message|error}_severity as it is in php_mssql
|
|
to ignore unimportant errors; it's work in progress
|
|
+ new function rmv_lcl() initially by Mark Pettit, to strip locale
|
|
crap from MONEY values converted to SQLCHAR while generating
|
|
Decimal object
|
|
+ other small fixes, improvements and janitorial work
|
|
|
|
Tue Aug 30 00:16:00 2005 Andrzej Kukula <[email protected]>
|
|
|
|
* mssqldbmodule.c: new features:
|
|
+ large numbers (DECIMAL, NUMERIC, MONEY, SMALLMONEY) are returned
|
|
as Decimal object -- this helps maintain accuracy; thanks to
|
|
Mark Pettit for help
|
|
+ COMPUTE clauses are supported (it wouldn't fetch data for those
|
|
columns before)
|
|
+ ROWID type has been removed from _mssql module
|
|
+ new type DECIMAL to denote Decimal objects in result set
|
|
|
|
Mon Aug 29 21:59:00 2005 Andrzej Kukula <[email protected]>
|
|
|
|
* mssqldbmodule.c: some improvements:
|
|
+ BIT values are returned as Python bool objects, suggested by
|
|
Mark Pettit
|
|
+ close() method returns None on success (not to be used at all)
|
|
and throws exception on error
|
|
+ fixed use of uninitialized value when parsing SMALLDATETIME
|
|
+ another round of performance improvements in GetRow() - eliminated
|
|
unnecessary data conversions and unneeded DB-Lib calls
|
|
+ janitorial fixes
|
|
|
|
Mon Aug 22 04:35:00 2005 Andrzej Kukula <[email protected]>
|
|
|
|
* mssqldbmodule.c: massive diff:
|
|
+ fixed bug with fetching query results of some data types;
|
|
found by Mark Pettit
|
|
+ fixed IndexError when query returns no rows; patch by Jakub Labath
|
|
+ rewritten function GetRow() that fetches query results: performance
|
|
improvements, better handling of result data types; datetime
|
|
is returned as datetime object instead of string (it's more
|
|
consistent with other values -- and more pythonic :)
|
|
+ eliminated DetermineRowSize()
|
|
+ cleanups: _mssql_init() further improvements w.r.t. Python API
|
|
+ janitorial fixes
|
|
+ added licensing information
|
|
* pymssql.py: docstring changed to look nicer with help()
|
|
* version 0.7.2
|
|
|
|
Thu Aug 11 02:12:00 2005 Andrzej Kukula <[email protected]>
|
|
|
|
* mssqldbmodule.c: improved module init function: added doc string,
|
|
made compliant with Python 2.0+ module interface (there are no more
|
|
coredumps on help())
|
|
* mssqldbmodule.c: documented that _mssql.connect() is not portable
|
|
between FreeTDS-dependent platforms and Windows platforms; documented
|
|
host:port usage
|
|
|
|
Sat Jul 23 14:20:00 2005 Andrzej Kukula <[email protected]>
|
|
|
|
* mssqldbmodule.c: eliminated problems with Python exiting upon
|
|
invalid login credentials with FreeTDS - the culprit was INT_EXIT
|
|
and FreeTDS setting DBDEAD
|
|
* mssqldbmodule.c: added better error messages (esp. on Windows)
|
|
* mssqldbmodule.c: added msg_handler and err_handler debugging
|
|
* 0.7.1 packages re-released
|
|
|
|
Fri Jul 22 03:19:00 2005 Andrzej Kukula <[email protected]>
|
|
|
|
* mssqldbmodule.c: major change; module revamped to support some
|
|
more builtin Python features; some redundant code removed; memset()
|
|
removed as there were no benefits but performance decrease
|
|
* mssqldbmodule.c: help(_mssql) works; help for conn object works too
|
|
* pymssql.py: _quote: removed escaping backslash -- with MSSQL it is
|
|
only needed to escape single quotes by duplicating them
|
|
* pymssql.py: pymssqlCnx class: added a few checks to properly support
|
|
DB-API 2.0 (see .close() in PEP 249)
|
|
* version 0.7.1
|
|
|
|
Wed Jul 20 22:12:00 2005 Andrzej Kukula <[email protected]>
|
|
|
|
* mssqldbmodule.c: removed the workaround for date issue; there were
|
|
more problems than benefits
|
|
* mssqldbmodule_tds.c: removed
|
|
* some more cleanups and corrections
|
|
|
|
Tue Jul 19 14:23:00 2005 Andrzej Kukula <[email protected]>
|
|
|
|
* mssqldbmodule.c: major change; many portability problems fixed
|
|
* mssqldbmodule.c: eliminated port setting; this is job for freetds.conf
|
|
* mssqldbmodule_tds.c: module to get FreeTDS compile-time settings
|
|
* build fixes; now it builds cleanly on FreeBSD, Linux and Windows
|
|
* version 0.7.0
|
|
|
|
Mon Jul 18 15:21:00 2005 Andrzej Kukula <[email protected]>
|
|
|
|
* mssqldbmodule.c: fix build on Windows: changed MS_WIN32 to MS_WINDOWS
|
|
reported by Mirek Rusin <[email protected]>
|
|
* mssqldbmodule.c: many small fixes and cleanups; janitorial fixes;
|
|
indentation using indent(1L)
|
|
* ChangeLog fix! 'mysql' was mentioned instead of 'mssql'...
|
|
|
|
Fri Feb 25 02:15:01 2005 Andrzej Kukula <[email protected]>
|
|
|
|
* Fix build on Windows with Visual Studio .NET 2003
|
|
and MS SQL Server 2000 SP3a
|
|
* mssqldbmodule.c: Fix compile error with Visual Studio .NET 2003
|
|
* mssqldbmodule.c: Add detection/workaround for date issue caused by
|
|
different dbdatecrack() prototypes
|
|
* README.freetds: describe dbdatecrack()-related issue
|
|
|
|
Thu Feb 24 02:03:14 2005 Alejandro Dubrovsky <[email protected]>
|
|
|
|
* Export column type names
|
|
* mssqldbmodule.c: Return column type information for headers
|
|
* Use type information to make cursor.description conform to API 2
|
|
|
|
2005-02-17 Alejandro Dubrovsky <[email protected]>
|
|
|
|
* Apply patch by Rob Nichols to get cursor.description closer to API 2 compliance
|
|
|
|
2005-02-08 Alejandro Dubrovsky <[email protected]>
|
|
|
|
* Message changes in mssqldbmodule.c (typos, grammar, etc)
|
|
|
|
2005-02-07 Alejandro Dubrovsky <[email protected]>
|
|
|
|
* Added ChangeLog
|
|
* API Change: add 6th parameter 'port' to connect
|
|
* Don't close connection on cursor close (noted by Alberto Pastore on the sourceforge project page)
|
|
* Make cursor.fetchone comply with DB-SIG return a tuple, not a list of tuples (report and patch by Chris Curvey)
|