summaryrefslogtreecommitdiff
path: root/HISTORY
blob: 6a567d559ca236f777093ae01c9ac75b5bf7a181 (plain)
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
=====================
 What's new in 1.2.4
=====================

final
=====

No changes.


rc 1
====

Fixed a dangling reference to the old types module.


beta 5
======

Another internal fix for handling remapped character sets.

_mysql.c was broken for the case where read_timeout was *not* available. (Issue #6)

Documentation was converted to sphinx but there is a lot of cleanup left to do.


beta 4
======

Added support for the MySQL read_timeout option. Contributed by
Jean Schurger (jean@schurger.org).

Added a workaround so that the MySQL character set utf8mb4 works with Python; utf8 is substituted
on the Python side.


beta 3
======

Unified test database configuration, and set up CI testing with Travis.

Applied several patches from André Malo (ndparker@users.sf.net) which fix some issues
with exception handling and reference counting and TEXT/BLOB conversion.


beta 2
======

Reverted an accidental change in the exception format. (issue #1)

Reverted some raise statements so that they will continue to work with Python < 2.6


beta 1
======

A lot of work has been done towards Python 3 compatibility, and avoiding warnings with Python 2.7.
This includes import changes, converting dict.has_kay(k) to k in dict, updating some test suite methods, etc.

Due to the difficulties of supporting Python 3 and Python < 2.7, 1.2.4 will support Python 2.4 though 2.7.
1.3.0 will support Python 3 and Python 2.7 and 2.6.

MySQLdb-2.0 is instead going to become moist-1.0. See https://github.com/farcepest/moist

The Windows build has been simplified, and I plan to correct pre-built i386 packages built
against the python.org Python-2.7 package and MySQL Connector/C-6.0. Contact me if you
need ia64 packages.

The connection's cursorclass (if not default) was being lost on reconnect.

Newer versions of MySQL don't use OpenSSL and therefore don't have HAVE_SSL defined, but they do have
a different SSL library. Fixed this so SSL support would be enabled in this case.

The regex that looked for SQL INSERT statement and VALUES in cursor.executemany() was made case-insensitive
again.


=====================
 What's new in 1.2.3
=====================

ez_setup.py has been update to include various fixes that affect the build.

Better Python version and dependency detection as well as eliminate exception
warnings under Python 2.6.

Eliminated memory leaks related to Unicode and failed connections.

Corrected connection .escape() functionality.

Miscellaneous cleanups and and expanded testing suite to ensure ongoing release
quality.

=====================
 What's new in 1.2.2
=====================

The build system has been completely redone and should now build
on Windows without any patching; uses setuptools.

Added compatibility for Python 2.5, including support for with statement.

connection.ping() now takes an optional boolean argument which can
enable (or disable) automatic reconnection.

Support returning SET columns as Python sets was removed due to an
API bug in MySQL; corresponding test removed.

Added a test for single-character CHAR columns.

BLOB columns are now returned as Python strings instead of byte arrays.

BINARY character columns are always returned as Python strings, and not
unicode.

Fixed a bug introduced in 1.2.1 where the new SHOW WARNINGS support broke
SSCursor.

Only encode the query (convert to a string) when it is a unicode instance;
re-encoding encoded strings would break things.

Make a deep copy of conv when connecting, since it can be modified.

Added support for new VARCHAR and BIT column types.

DBAPISet objects were broken, but nobody noticed.


========================
 What's new in 1.2.1_p2
========================

There are some minor build fixes which probably only affect MySQL
older than 4.0.

If you had MySQL older than 4.1, the new charset and sql_mode
parameters didn't work right. In fact, it was impossible to create
a connection due to the charset problem.

If you are using MySQL-4.1 or newer, there is no practical difference
between 1.2.1 and 1.2.1_p2, and you don't need to upgrade.


=====================
 What's new in 1.2.1
=====================

Switched to Subversion. Was going to do this for 1.3, but a
SourceForge CVS outage has forced the issue.

Mapped a lot of new 4.1 and 5.0 error codes to Python exceptions

Added an API call for mysql_set_character_set(charset) (MySQL > 5.0.7)

Added an API call for mysql_get_character_set_info() (MySQL > 5.0.10)

Revamped the build system. Edit site.cfg if necessary (probably not
in most cases)

Python-2.3 is now the minimum version.

Dropped support for mx.Datetime and stringtimes; always uses Python
datetime module now.

Improved unit tests

New connect() options:
* charset: sets character set, implies use_unicode
* sql_mode: sets SQL mode (i.e. ANSI, etc.; see MySQL docs)

When using MySQL-4.1 or newer, enables MULTI_STATEMENTS

When using MySQL-5.0 or newer, enables MULTI_RESULTS

When using MySQL-4.1 or newer, more detailed warning messages
are produced

SET columns returned as Python Set types; you can pass a Set as
a parameter to cursor.execute().

Support for the new MySQL-5.0 DECIMAL implementation

Support for Python Decimal type

Some use of weak references internally. Cursors no longer leak
if you don't close them. Connections still do, unfortunately.

ursor.fetchXXXDict() methods raise DeprecationWarning

cursor.begin() is making a brief reappearence.

cursor.callproc() now works, with some limitations.