File: ChangeLog

package info (click to toggle)
pymssql 2.1.4+dfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 952 kB
  • sloc: python: 2,872; sh: 240; makefile: 148; ansic: 7
file content (954 lines) | stat: -rw-r--r-- 37,968 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
Change Log
==========

Version 2.1.4 - To be released
==============================

General
-------

- Allow linkage against FreeTDS (by dropping usage of deprecated
  ``DBVERSION_80`` symbol.) (GH-432)

- Stop using 7.1 as default value for the TDS protocol version used in connections.

  This is a backward incompatible change and affects connections using both
  `pymssql` and `_mssql`.

  Now you need to specify a TDS protocol version explicitly by using any of
  the supported mechanisms (in descending order of precedence):

  * Using the ``tds_version`` paramenter of ``pymssql.connect()`` and
    ``_mssql.connect()``
  * A ``TDSVER`` enviromnent variable (see FreeTDS documentation)
  * A ``freetds.conf`` file (see FreeTDS documentation)

- Drop support for versions of FreeTDS older than 0.91.

- Accept 7.3 as TDS protocol version when establishing a connection.

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

- Finish implementation of TDS protocol version 7.3 support by actually
  accepting ``"7.3"`` as TDS protocol version when establishing a connection.
  (GH-455)
- Fixed and expanded Python data types that can be used to pass ``VARBINARY``,
  ``BINARY`` and ``IMAGE`` SQL Server Stored Procedures input parameters.
  (GH-425). Thanks Bill Adams for the fix.
- 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
===========================================

General
-------

- 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

- Update bundled Linux static version of FreeTDS to v0.95.95.

Features
--------

- We now publish Linux PEP 513 manylinux wheels on PyPI.

Bug fixes
---------

- Add support for reporting TDS version 7.3 is in use via the ``tds_version``
  property of a ``_mssql``-level connection.

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.

General
-------

- Drop support for Python 2.6.

- Add support for Python 3.5.

- Update shipped Linux FreeTDS static libs to 0.95

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)

Documentation
-------------

- Add installation instructions. Thanks Marc Abramowitz.

- Document DB-API-mandated exceptions.

- Enhance ``_mssql.MSSQLStoredProcedure.bind()`` docs.

- Enhance description of Azure connections requirements.

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

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 <msabramo@gmail.com>
--------------------------------------------------------------------------------
	* 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 <msabramo@gmail.com>
--------------------------------------------------------------------------------
    * 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 <damoxc@gmail.com>
	* _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 <damoxc@gmail.com>
	* MANIFEST.in:
		+ bugfix: fix recursive-include for .pyrex
	* version 1.9.908

Wed Apr 21 16:02:00 2010 Damien Churchill <damoxc@gmail.com>
	* MANIFEST.in:
		+ bugfix: include missing .pyrex folder
	* version 1.9.907

Fri Apr 09 13:16:00 2010 Damien Churchill <damoxc@gmail.com>
	* 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 <damoxc@gmail.com>
	* _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 <damoxc@gmail.com>
	* 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 <akukula@gmail.com>
	* 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 <damoxc@users.sourceforge.net>

Wed Apr 29 19:31:00 2009  Andrzej Kukula <akukula@gmail.com>
	* mssqldbmodule.c:
	  + fixed possible memory leak, thanks Evgeny Cherkashin
		<eugene.adm@gmail.com>

Tue Apr 23 23:00:00 2009  Andrzej Kukula <akukula@gmail.com>
	+ 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
	  <dwmaillist@gmail.com>
	* nagios-plugin update - thanks Josselin Mouette <joss@debian.org>:
	  + 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 <akukula@gmail.com>
	* mssqldbmodule.c:
	  + bugfix in format_and_run_query(): query strings were sometimes
		overwritten with garbage due to DECREF in wrong place; thanks
		Igor Nazarenko <igor.n.nazarenko@gmail.com>
	  + bugfix in get_result(): if a query batch contained DECLARE or
		possibly other T-SQL statements, no results were returned
		thanks Kay Schluehr <schluehrk@users.sourceforge.net>
	  + 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 <shura_zam@users.sourceforge.net>
	* 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 <corey.bertram@monitoredsecurity.com>,
		Wes McKinney <wesmckinn@gmail.com>
	  + feature: it is possible to specify 'as_dict' to pymssql.connect
		and rows will be returned as dictionaries instead of tuples;
		thanks Daniel Watrous <dwmaillist@gmail.com>

Thu Jan 30 18:36:00 2009  Andrzej Kukula <akukula@gmail.com>
	* mssqldbmodule.c:
	  + Pyssize_t error on x64 - thanks Josselin Mouette <joss@debian.org>
	  + critical charset updates, thanks Josselin Mouette <joss@debian.org>
	  + more Py_ssize_t updates, further code cleanups
	  + fixed some compiler warnings
	* pymssql.py:
	  + execute() failed, thanks Josselin Mouette <joss@debian.org>
	  + critical charset updates, thanks Josselin Mouette <joss@debian.org>
	  + 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 <akukula@gmail.com>
	* 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 <akukula@gmail.com>
	* setup.py: fix for Fink (http://Fink.SF.Net) under OS X (thanks
	  Terrence Brannon <metaperl@gmail.com>)

Sun Sep 24 10:44:00 2006  Andrzej Kukula <akukula@gmail.com>
	* 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 <akukula@gmail.com>
	* mssqldbmodule.c:
	  + corrected misspellings in docstrings
	  + fixed segfault on connection close with Python 2.5; thanks
		Justin Francis <jfrancis@pivotalpayments.com>
	* pymssql.py:
	  + fixed two minor DB-API incompatibilities (thanks Matthew Good
		<matt@matt-good.net>)
	  + fixed datetime quoting (thanks Jan Finell <jfinell@regionline.fi>)
	* pymssql should be able to build on cygwin (thanks
	  rob@robnet.com)
	* docstring fixes, webpage doc updates

Tue May 15 03:18:00 2006  Jooncheol Park <exman@users.sourceforge.net>
	* setup.py, PKG-INFO, README: license change to LGPL

Wed Mar 15 08:18:00 2006  Andrzej Kukula <akukula@users.sourceforge.net>
	* pymssql.py: fixed datetime issue (thanks Jan Finell
	  <jfinell@regionline.fi>)

Fri Feb 24 16:11:00 2006  Andrzej Kukula <akukula@users.sourceforge.net>
	* mssqldbmodule.c: fixed typos in docstrings (thanks Konstantin
	  Veretennicov)

Tue Dec 27 15:14:00 2005  Andrzej Kukula <akukula@users.sourceforge.net>
	* 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 <akukula@users.sourceforge.net>
	* 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 <akukula@users.sourceforge.net>
	* 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 <akukula@users.sourceforge.net>
	* version 0.7.2

Sun Sep 4 23:12:00 2005  Andrzej Kukula <akukula@users.sourceforge.net>

	* 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 <akukula@users.sourceforge.net>

	* 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 <akukula@users.sourceforge.net>

	* 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 <akukula@users.sourceforge.net>

	* 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 <akukula@users.sourceforge.net>

	* 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 <akukula@users.sourceforge.net>

	* 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 <akukula@users.sourceforge.net>

	* 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 <akukula@users.sourceforge.net>

	* 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 <akukula@users.sourceforge.net>

	* 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 <akukula@users.sourceforge.net>

	* mssqldbmodule.c: fix build on Windows: changed MS_WIN32 to MS_WINDOWS
	  reported by Mirek Rusin <mirek.rusin@onet.pl>
	* 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 <akukula@users.sourceforge.net>

	* 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  <alito@organicrobot.com>

	* 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  <alito@organicrobot.com>

	* Apply patch by Rob Nichols to get cursor.description closer to API 2 compliance

2005-02-08  Alejandro Dubrovsky  <alito@organicrobot.com>

	* Message changes in mssqldbmodule.c (typos, grammar, etc)

2005-02-07  Alejandro Dubrovsky  <alito@organicrobot.com>

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