List:General Discussion« Previous MessageNext Message »
From:Sowmya Dass Date:July 24 2014 5:48pm
Subject:MySQL Connector/Python 2.0.0 Alpha has been released
View as plain text  
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
        import mysql.connector

        cnx = mysql.connector.connect(raw=True)
        cursor = cnx.cursor()
        cursor.execute('SELECT 1')
        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
        is: [(bytearray(b'1'),)]
        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
             [connector_python] groups.
             For more information, see Connector/Python Option-File Support

    Bugs Fixed

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

Reporting Bugs
We welcome and appreciate your feedback and bug reports:

Enjoy !

On Behalf of the MySQL RE team at Oracle,
Sowmya Dass

MySQL Connector/Python 2.0.0 Alpha has been releasedSowmya Dass24 Jul