Dear MySQL users,
MySQL Connector/Python 2.0.0-alpha is the first alpha version of
2.0 release series of the pure Python database driver for MySQL.
It is intended to introduce users to the new features.
This release is not feature complete but it should be stable
enough for users to understand the new features and how we
expect them to work.
As is the case with all non-GA releases, it should not be used
in any production environment.
MySQL Connector/Python version 2.0.0-alpha is compatible with MySQL
Server versions 5.5 and greater. Python 2.6 and greater as well as
Python 3.3 and greater are supported. Python 2.4, 2.5 and 3.1, 3.2
are not supported.
MySQL Connector/Python 2.0.0-alpha is available for download from:
The ChangeLog file included in the distribution contains a brief summary
of changes in MySQL Connector/Python 2.0.0. For a more complete list of
changes, see below or online at:
Changes in MySQL Connector/Python 2.0.0 (2014-07-24, Alpha)
Functionality Added or Changed
* Incompatible Change: Previous series of Connector/Python had
separate Python 2 and Python 3 code bases. For
Connector/Python 2.0, the source tree has been reorganized to
have a single code base, for easier maintenance, testing, and
This reorganization results in an incompatible change in
behavior: With the use of "raw" cursors, the returned values
is of the bytearray type. This is necessary for having both
Python 2 and 3 return the same data. Consider the following
cnx = mysql.connector.connect(raw=True)
cursor = cnx.cursor()
In Connector/Python 1.x, the output is:
+ Using Python 2: [('1',)]
+ Using Python 3: [(b'1',)]
In Connector/Python 2.0, for both Python versions, the output
To get the same value as in Connector/Python 1.x, do this:
+ Using Python 2: str(bytearray(b'1'))
+ Using Python 3: bytes((bytearray(b'1'))
* Important Change: Previously, to enable use of LOAD DATA LOCAL
INFILE, clients had to explicitly set the
ClientFlag.LOCAL_FILES flag. This flag is now enabled by
default. To disable it, the allow_local_infile option for
connect()can be set to False.
* For a stored procedure that produces multiple result sets, it
is now possible possible to execute the procedure and process
its results by executing a CALL statement. Execute the
statement using execute() with a multi=True argument, and use
the returned iterator to process each result in turn. (Bug
#73291, Bug #19207922)
* The packaging modules and supporting files have been removed
from the main repository and from the source packages for
Connector/Python. They are still available in the
Connector/Python 1.x series.
* The mysql.connector.cursor module supports four new cursor
+ The MySQLCursorDict cursor class returns each row as a
dictionary. The keys for each dictionary object are the
column names of the MySQL result.
cursor = cnx.cursor(dictionary=True)
+ The MySQLCursorBufferedDict cursor class is like
MySQLCursorDict, but fetches the entire result set after
executing the query and buffers the rows.
cursor = cnx.cursor(dictionary=True, buffered=True)
+ The MySQLCursorNamedTuple cursor class returns each row
as a named tuple. Each column is accessible through an
attribute of the tuple-like object.
cursor = cnx.cursor(named_tuple=True)
+ The MySQLCursorBufferedNamedTuple cursor class is like
MySQLCursorNamedTuple, but fetches the entire result set
after executing the query and buffers the rows.
cursor = cnx.cursor(named_tuple=True, buffered=True)
For more information, see cursor.MySQLCursor Subclasses
* Connector/Python now supports option files using two new
options for connect():
+ option_files: Which option files to read. The value can
be a file path name (a string) or a sequence of path name
strings. By default, Connector/Python reads no option
files, so this argument must be given explicitly to cause
option files to be read. Files are read in the order
+ option_groups: Which groups to read from option files, if
option files are read. The value can be an option group
name (a string) or a sequence of group name strings. If
this argument is not given, the default value is
['client, 'connector_python'] to read the [client] and
For more information, see Connector/Python Option-File Support
* Fetching results from a prepared statement that returned many
columns could produce an error. (Bug #72602, Bug #18742429)
* Previously, a RuntimeError exception was raised when a Django
application was inactive for a while. Now, the Django backend
verifies that the database connection is still valid each time
a database request is made. (Bug #72545, Bug #18843153)
* Django TimeField values of 00:00:00 were incorrectly converted
to NULL because Python considered that value equal to False.
(Bug #72732, Bug #18956789)
The source distribution includes the manual in various formats under
the docs/ folder.
We welcome and appreciate your feedback and bug reports:
On Behalf of the MySQL RE team at Oracle,
|• MySQL Connector/Python 2.0.0 Alpha has been released||Sowmya Dass||24 Jul 2014|