MySQL Connector/Python Changelog

What's new in MySQL Connector/Python 2.0.5

Oct 27, 2016
  • A potential SQL injection vector was eliminated. (Bug #22529828, Bug #24816150)

New in MySQL Connector/Python 2.1.2 Beta (May 1, 2015)

  • Functionality Added or Changed:
  • Previously, connections from Connector/Python to Fabric were always made using the XML-RPC protocol. It is now possible to connect using the MySQL client/server protocol. To specify the protocol, use the protocol value in the the fabric dictionary argument for the connect() method. Permitted protocol values are xmlrpc (the default) and mysql. With mysql, the default port becomes 32275, although that can be changed with an explicit port value. For more information, see Requesting a Fabric Connection.
  • Bugs Fixed:
  • Connector/Python could raise an AttributeError exception for Fabric connections with MySQL Utiliies 1.5.4 or 1.6.1. (Bug #20834643)
  • For connections that use the C Extension, an error occurred for attempts to create a cursor with buffered=True. (Bug #20811802)
  • The Connector/Python version checker for MySQL did not handle nonnumeric suffixes. During the build process, if the --with-mysql-api option was given, the check failed for installed versions of MySQL such as 5.7.6-m16. (Bug #20365619)
  • The setup.py install command did not retain the value provided by the --install-lib option. (Bug #20217174)
  • Encoding failure could occur for prepared cursors with UTF-8 statement parameters. (Bug #75542, Bug #20407036)
  • Values of the SET data type were not translated correctly if empty. (Bug #75402, Bug #20301989)
  • HASH sharding for Fabric failed. (Bug #75287, Bug #20324089)
  • Queries that produced a large result could result in an IndexError: bytearray index out of range exception. (Bug #74933, Bug #20462427)
  • The Django backend was creating excessive connections (immediately when each DatabaseWrapper object was created rather than waiting until the object actually needed the connection.) (Bug #74696, Bug #19972427)
  • Error messages containing non-ASCII characters caused an exception to be raised. (Bug #74345, Bug #19803702)
  • The Django backend sometimes failed to properly convert SafeText objects, which then appeared in queries. (Bug #74336, Bug #20106629)
  • When using the callproc() cursor method, warnings generated by statements executed within the procedure or generated by the procedure itself were not available to the client. (Bug #74252, Bug #19777815)
  • Connection pooling did not work when using MySQL Fabric. (Bug #73445, Bug #19331658)

New in MySQL Connector/Python 2.0.4 (Apr 22, 2015)

  • Bugs Fixed:
  • The Changes.txt file was missing from .msi and .dmg packages. (Bug #20323087)
  • Encoding failure could occur for prepared cursors with UTF-8 statement parameters. (Bug #75542, Bug #20407036)
  • Values of the SET data type were not translated correctly if empty. (Bug #75402, Bug #20301989)
  • HASH sharding for Fabric failed. (Bug #75287, Bug #20324089)
  • Queries that produced a large result could result in an IndexError: bytearray index out of range exception. (Bug #74933, Bug #20462427)
  • The Django backend sometimes failed to properly convert SafeText objects, which then appeared in queries. (Bug #74336, Bug #20106629)

New in MySQL Connector/Python 2.0.3 (Jan 28, 2015)

  • Bugs Fixed:
  • The Django backend was creating excessive connections (immediately when each DatabaseWrapper object was created rather than waiting until the object actually needed the connection.)
  • Using the Django backend, it was not possible to connect to a connection_created signal.
  • recv_plain() could fail to read a packet header correctly, resulting in a lost connection.
  • Error messages containing non-ASCII characters caused an exception to be raised.
  • When using the callproc() cursor method, warnings generated by statements executed within the procedure or generated by the procedure itself were not available to the client.
  • Connection pooling did not work when using MySQL Fabric.

New in MySQL Connector/Python 2.0.2 (Nov 17, 2014)

  • Bugs Fixed:
  • If the pool_size and pool_name connection arguments were specified using the option file (as opposed to being passed explicitly to the connect call), the pooled connection was successfully created, but an exception was raised when closing it. (Bug #19549363)
  • The Django backend raised an exception when converting "0000-00-00 00:00:00" to None. (Bug #73940, Bug #19667984)
  • Using a connection_created signal defined in django.db.backends.signals caused a “maximum recursion depth reached” runtime error. (Bug #73847, Bug #19584116)
  • The type_code in cursor.description did not compare equal to any of the type objects defined in mysql.connector.dbapi. (Bug #73798, Bug #19584051)
  • Data corruption occurred when inserting sufficiently large data in a table with a TEXT type column using prepared statements, due to incorrect encoding of the data length while sending the prepared statement packet. (Bug #73690, Bug #19522948)
  • When the character set was binary, character set conversion could occur. Conversion is no longer done and binary data is returned as is. (Bug #71909, Bug #19500097)

New in MySQL Connector/Python 2.0.1 (Sep 25, 2014)

  • Functionality Added or Changed:
  • Connector/Python is now compatible with Django 1.7. (Bug #72746, Bug #19163169)
  • RANGE_STRING is now supported as a sharding type. This is similar to the regular RANGE sharding type, but instead of an integer key, requires a UTF-8 encoded string. Only Unicode strings are supported. Any other type given when using a shard defined using RANGE_STRING causes a ValueError to be raised.
  • RANGE_DATETIME is now supported as a sharding type. This is similar to the regular RANGE sharding type, but instead of an integer key, requires a datetime or date object. Only datetime.datetime and datetime.date values are supported. Any other type given when using a shard defined using RANGE_DATETIME causes a ValueError to be raised.
  • Bugs Fixed:
  • Connector/Python failed to catch an exception when SSL capability was found to be unavailable. (Bug #19440592)
  • Multiple [connector_python] option groups sometimes caused an error. (Bug #19170287)
  • Date and time query formatting was fixed for the Django backend. (Bug #19179711)
  • An error failed to occur if an option file was named multiple times. (Bug #19169143)
  • Some valid Connector/Python connection options were not recognized when specified in the [connector_python] option group. (Bug #19168737)
  • An exception was raised when a cursor tried to convert LINESTRING data as UTF-8 data. Now such values are returned without decoding. (Bug #73187, Bug #19164627)
  • With Python 2, Connector/Python could truncate digits of floating-point values. (Bug #73266, Bug #19225481)
  • Binding None (NULL) to a parameter marker in a prepared statement did not work. (Bug #73370, Bug #19282158)
  • !include and !includedir directives in option files were not handled properly. (Bug #73660, Bug #19481761)
  • Connector/Python now supports a shutdown() method that, unlike disconnect(), closes the client connection without attempting to send a QUIT command to the server first. Thus, it will not block if the connection is disrupted for some reason such as network failure. (Bug #72691, Bug #18798953)

New in MySQL Connector/Python 1.2.3 (Aug 27, 2014)

  • Functionality Added or Changed:
  • Connector/Python is now compatible with Django 1.7. (Bug #72746, Bug #19225481)
  • Bugs Fixed:
  • Connector/Python failed to catch an exception when SSL capability was found to be unavailable. (Bug #19440592)
  • The specification and control files were updated to reflect that Connector/Python 1.2 cannot be used with MySQL Utilities 1.5.1 (which requires Connector/Python 2.0 or greater). (Bug #19444705)
  • Negative timedelta values were incorrectly converted to and from Python. Thanks to Vitali Graf for the patch. (Bug #72493, Bug #18694096)
  • 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)
  • An exception was raised when a cursor tried to convert LINESTRING data as UTF-8 data. Now such values are returned without decoding. (Bug #73187, Bug #19164627)
  • With Python 2, Connector/Python could truncate digits of floating-point values. (Bug #73266, Bug #19225481)

New in MySQL Connector/Python 1.2.2 (May 27, 2014)

  • Bugs Fixed:
  • The Fabric connection configuration permitted username but not user as a parameter name, which is inconsistent with the connection arguments permitted by Connector/Python itself. Now either can be used. (Using both raises a ValueError.) (Bug #18463182)
  • In the MySQLProtocol._auth_response method of the mysql.connector.protocol module, the auth_response variable was changed without being defined first. (Bug #18463182)
  • Commercial Debian Connector/Python packages included a copyright file containing a GPL license. (Bug #18422727)
  • Building an RPM package using python setup.py bdist_rpm did not work. (Bug #72261, Bug #18550039)
  • The community MSI Connector/Python packages contained empty documentation PDF and HTML files. These have been removed and replaced with the README_DOCS.txt file which contains a URL to the online manual. (Bug #72245, Bug #18527132)
  • For Python 3, when parameters were passed as a dictionary to the MySQLCursor methods execute() and executemany(), only first occurrence of each element in the query was replaced by the parameter value. (Bug #71975, Bug #18389196)
  • when MySQLCursor.execute() was passed values of a data type which cannot be converted, the exception raised was not easy to understand. Now a nicer error message is displayed when unconvertible Python types are given. (Bug #71729, Bug #18258807)
  • Connector/Python raised all deprecation warnings as errors when Django was run in debug mode. Now only database warnings are raised as errors in debug mode. (Bug #71806, Bug #18380134)

New in MySQL Connector/Python 1.1.7 (May 13, 2014)

  • Bugs Fixed:
  • Connector/Python produced errors using time functions with Django 1.6 due to not using the autocommit value from Django. Now the value is set to that specified in the Django configuration file.

New in MySQL Connector/Python 1.2.1 RC (Apr 10, 2014)

  • Functionality Added or Changed:
  • It was not possible to initiate an SSL session without explicitly giving a key and certificate. Now it is possible to connect to a MySQL server using only the ssl_ca connection argument pointing to a file of CA certificates. This means the ssl_key and ssl_cert connection arguments are optional. However, when either is given, both must be given or an AttributeError is raised. (Bug #69418, Bug #17054848)
  • Connector/Python now supports authentication plugins found in MySQL 5.6. This includes mysql_clear_password and sha256_password, both of which require an SSL connection. The sha256_password plugin does not work over a non-SSL connection because Connector/Python does not support RSA encryption.
  • The connect() method now supports an auth_plugin parameter that can be used to force use of a particular plugin. For example, if the server is configured to use sha256_password by default and you want to connect to an account that authenticates using mysql_native_password, either connect using SSL or specify auth_plugin='mysql_native_password'. (Bug #68054, Bug #16217765)
  • Connector/Python now permits the type for stored procedure parameters to be specified. To do this, specify a parameter as a two-item tuple consisting of the parameter value and type. For more information, see Method MySQLCursor.callproc(procname, args=()). (Bug #71124, Bug #17965619)
  • A new MySQLConnection class reset_connection() method enables applications to send a COM_RESET_CONNECTION to the server. This method is analogous to the mysql_reset_connection() C API function added in MySQL 5.7.3.
  • A new MySQLConnection class reset_session() method is similar to reset_connection() but falls back to use reauthentication for older servers that do not support COM_RESET_CONNECTION. For more information, see Method MySQLConnection.cmd_reset_connection(), and Method MySQLConnection.reset_session().
  • Connector/Python now can report errors to Fabric that occur while accessing a MySQL instance. The information can be used to update the backing store and trigger a failover operation, provided that the instance is a primary server and Fabric has received a sufficient number of problem reports from different connectors.
  • The fabric dictionary argument to the connect() method now accepts a report_errors value. Its default value is False; pass a value of True to enable error reporting to Fabric.
  • To define which errors to report, use the extra_failure_report() function:
  • from mysql.connector.fabric import extra_failure_report
  • extra_failure_report([error_code_0, error_code_1, ...])
  • Connector/Python now enables applications to specify additional information to be used when connecting to Fabric: User name and credentials, and information to use for establishing an SSL connection. The fabric dictionary argument to the connect() method accepts these additional values: username, password, ssl_ca, ssl_cert, ssl_key. Only the ssl_ca value is required to establish an SSL connection. If ssl_cert or ssl_key are given, both must be specified.
  • The connect() method now accepts a failover argument that provides information to use for server failover in the event of connection failures. The argument value is a tuple or list of dictionaries (tuple is preferred because it is nonmutable). Each dictionary contains connection arguments for a given server in the failover sequence. Permitted dictionary values are: user, password, host, port, unix_socket, database, pool_name, pool_size.
  • Bugs Fixed:
  • The MySQLConnection.autocommit attribute failed to set the value of the self._autocommit attribute. (Bug #18172769)
  • Uninstalling Connector/Python using an RPM package failed to remove the fabric folder. (Bug #18143073)
  • For Fabric connections, any connect_attempts and connect_delay values specified by the user were ignored. (Bug #18055719)
  • The global MYSQL_FABRIC_PORT variable was changed from 8080 to 32274 to match the port change made in Fabric. (Bug #18075339)
  • For Fabric sharding operations, Connector/Python raised an incorrect error when a table was given with the tables connection property for which no sharding information was available. This now results in a DatabaseError (with errorcode.ER_BAD_TABLE_ERROR) mentioning that the table is unknown. (Bug #18047794)
  • For Fabric operations, the default mode was supposed to be read/write but was set to read-only. (Bug #18047591)
  • For Fabric operations, an incorrect exception was raised by set_property() when a connection property value had the wrong type (for example, when the tables property was not a tuple or a list). set_property() now correctly raises a ValueError. (Bug #18047758)
  • Fabric has renamed the dump functionality to a new command called dump. Consequently, Connector/Python now uses the new functions dump.sharding_information, dump.fabric_nodes, and dump.servers. (Bug #71124, Bug #17965619)
  • MySQLCursor.executemany() caused a UnicodeDecodeError when non-ASCII characters existed in the seq_params parameter and the operation was a Unicode instance with Python 2. This is now corrected by encoding the operation per the current connection character set. (Bug #69067, Bug #18220593)
  • The delay between attempts when trying to connect to a MySQL Fabric-managed server was not honored. (Bug #71905, Bug #18335432)

New in MySQL Connector/Python 1.1.6 (Feb 20, 2014)

  • Bugs Fixed:
  • Connector/Python produced errors using time functions with Django 1.6 due to not using the autocommit value from Django. Now the value is set to that specified in the Django configuration file. (Bug #71438, Bug #18187561)

New in MySQL Connector/Python 1.1.5 (Feb 1, 2014)

  • Functionality Added or Changed:
  • Connector/Python is now compatible with Django 1.6.
  • utf8mb4 is now recognized as a valid character set.
  • The start_transaction() method now supports a readonly argument. This argument can be True to start the transaction in READ ONLY mode or False to start it in READ WRITE mode. If readonly is omitted, the server's default access mode is used. For details about transaction access mode, see the description for the START TRANSACTION statement at START TRANSACTION, COMMIT, and ROLLBACK Syntax. If the server is older than MySQL 5.6.5, it does not support setting the access mode and Connector/Python raises a ValueError.
  • Bugs Fixed:
  • When using connection pooling, a connection returned to the pool was not reset, so session variables retained their values. Now these variables are reset by re-authenticating the user when the connection is returned to the pool. To disable this behavior, pass a pool_reset_session argument to connect() when requesting a pooled connection:
  • cnx = mysql.connector.connect(pool_reset_session=False,...)
  • An incorrectly handled error in MySQLProtocol.parse_column_count() method could lead to a misreported error message.
  • executemany() failed with INSERT INTO ... SELECT statements.

New in MySQL Connector/Python 1.2.0 Alpha (Dec 23, 2013)

  • Functionality Added or Changed:
  • Connector/Python now supports Fabric.
  • Supported capabilities include:
  • High-Availability group lookup using RO/RW modes
  • Failure reporting to Fabric
  • Range and Hash Sharding support
  • Failover support
  • Load balancing based on weight

New in MySQL Connector/Python 1.1.3 Beta (Dec 4, 2013)

  • Functionality Added or Changed:
  • The Connector/Python source code has been made compliant with PEP-8 to the extent possible.
  • Bugs Fixed:
  • Connection pooling did not correctly handle unavailable servers; for a connection that could not be established, it failed to return the connection to the pool. Now reconnection is attempted and if that fails, the connection is returned to the pool. (Bug #17578937)
  • There was a problem saving data containing the backslash character or 0x5c using multi-byte character sets such as sjis, big5, or gbk. To handle this, there is a new HexLiteral type. When a backslash is found in such as sjis, big5, or gbk data, the string is sent as a hexadecimal literal to MySQL. (Bug #69710, Bug #17079344)
  • Connection attempts failed on older versions of FreeBSD. (Bug #69088, Bug #17372107)

New in MySQL Connector/Python 1.1.2 Alpha (Oct 24, 2013)

  • Functionality Added or Changed:
  • The error message raised when a connection pool has no more connections available now indicates “pool exhausted” rather than “queue is empty”. (Bug #17406263)
  • Previously, instantiating a cursor for prepared statements was done using MySQLConnection.cursor(cursor_class=MySQLCursorPrepared). Now this can be done using MySQLConnection.cursor(prepared=True). (Bug #17215197)
  • Previously, setting a custom converter class was possible after instantiating a new connection object. The connect() method now accepts a converter_class connection argument that takes a class and sets it when configuring the connection. An AttributeError is raised if the the custom converter class is not a subclass of conversion.MySQLConverterBase. (Bug #13551483)
  • The connect() method now accepts a boolean compress={False|True} argument indicating whether to use the compressed client/server protocol (default False). This provides an easier alternative to setting the ClientFlag.COMPRESS flag. (Bug #13369592)
  • Bugs Fixed:
  • In some cases, when a Connector/Python application exited, a RuntimeError was raised when using Python 3. (Bug #17424009)
  • The DatabaseOperations.last_executed_query() method in the Django base module was unnecessarily decoding the string, resulting in an error when using Python 3. (Bug #70324, Bug #17473273)

New in MySQL Connector/Python 1.1.1a1 Alpha (Sep 10, 2013)

  • unctionality Added or Changed:
  • Output for individual unit tests did not show timings, making it more difficult to debug problems that involve a change in test execution time. unittest.py now has a new --stats option that runs tests and shows elapsed time for each.
  • It is also possible to save the data to a MySQL server. When the --stats-host option is given with other options such as --stats-user, results are saved to a table called myconnpy_X_Y_Z. The table contains the name of the test case and columns that combine Python and MySQL versions; for example, py27my55 or py33my56.
  • MySQL Connector/Python now supports simple connection pooling that has these characteristics:
  • A pool opens a number of connections and handles thread safety when providing connections to requesters.
  • The size of a connection pool is configurable at pool creation time. It cannot be resized thereafter.
  • A connection pool can be named at pool creation time. If no name is given, one is generated using the connection parameters.
  • The connection pool name can be retrieved from the connection pool or connections obtained from it.
  • It is possible to have multiple connection pools. This enables applications to support pools of connections to different MySQL servers, for example.
  • For each connection request, the pool provides the next available connection. No round-robin or other scheduling algorithm is used.
  • It is possible to reconfigure the connection parameters used by a pool. These apply to connections obtained from the pool thereafter. Reconfiguring individual connections obtained from the pool by calling the connection config() method is not supported.
  • Applications that can benefit from connection-pooling capability include:
  • Middleware that maintains multiple connections to multiple MySQL servers and requires connections to be readily available.
  • Web sites that can have more “permanent” connections open to the MySQL server.
  • The connection pooling implementation involves these interface elements:
  • A new module, mysql.connector.pooling, provides two classes: MySQLConnectionPool instantiates and manages connection pools, and PooledMySQLConnection is similar to MySQLConnection but is used for connections that are part of a connection pool.
  • A new exception, PoolError, occurs for pool-related exceptions. PoolError is a subclass of Error.
  • For more information, see Connector/Python Connection Pooling.
  • Connector/Python now includes a mysql.connector.django module that provides a Django backend for MySQL. This backend supports new features found in MySQL 5.6 such as fractional seconds support for temporal data types.
  • Bugs Fixed:
  • Following fetchone() or fetchmany(), the result returned by fetchall() was missing one row. (Bug #17041412)
  • Previously, executing a statement after the connection was closed raised an OperationalError with an unclear error. Connector/Python now returns the client error 2006, MySQL Server has gone away, with an extra message.
  • The Error() class has been extended to accept a new argument, extra_msg. When given, it is appended between brackets. For example: [2000] Unknown MySQL Error (Some extra message) (Bug #17022399)
  • LOAD DATA LOCAL INFILE failed for files approximately 14MB or larger. (Bug #17002411)
  • An InternalError was raised during transaction rollback if there were unread results. The MySQLConnection.rollback() method now consumes unread results instead of raising an error. (Bug #16656621)
  • Python 2.6 and 2.7 raised a UnicodeDecodeError when unicode_literals was used and a database name contained nonlatin Unicode characters. (Bug #16655208)
  • An unclear OperationalError was raised if a cursor object was closed while there were unread results. Connector/Python now raises an InternalError indicating that there are still unread results. This provides information that to avoid the error it is necessary to consume the result by reading all rows. (Bug #67649, Bug #17041240)
  • The MySQLCursor.executemany() method raised an exception when a SQL function was used as a column value when executing an INSERT statement. (Bug #69675, Bug #17065366)

New in MySQL Connector/Python 1.0.12 (Aug 15, 2013)

  • The fetchall() methods for buffered cursors were returning all rows after fetchone() or fetchmany() were used. fetchall() now correctly returns all or remaining, just like the nonbuffered cursors. (Bug #16662920)
  • Following fetchone() or fetchmany(), the result returned by fetchall() was missing one row. (Bug #17041412)
  • LOAD DATA LOCAL INFILE failed for files approximately 14MB or larger. (Bug #17002411)
  • Python 2.6 and 2.7 raised a UnicodeDecodeError when unicode_literals was used and a database name contained nonlatin Unicode characters. (Bug #16655208)

New in MySQL Connector/Python 1.1.0 Alpha 1 (Aug 15, 2013)

  • BUG#16896702: Updated errors using MySQL 5.7.1
  • WL#6148: Added support for MySQL Prepared Statements
  • BUG#16234372: Fixed relative imports in Python v3 code
  • WL#6573: Added method to start transactions explicitly
  • WL#6517: Added more standard attributes for getting the version
  • WL#6574: Added the possibility to check for an ongoing transaction

New in MySQL Connector/Python 1.0.9 (May 3, 2013)

  • Fixed the 'build' DistUtils command to copy version.py. This makes sure that the version of Connector/Python inside the build-directory is fully functional. (BUG#16236136)
  • Fixed connecting using SSL: we now set the ClientFlag.SSL automatically whenever SSL arguments are used when setting up the connection. (BUG#16217667)
  • Fixed passing string parameters to stored routines. (BUG#16217743)
  • Fixed mail address of FSF in copyright notice. (BUG#16249347)
  • Fixed IPv6 for older MS Windows versions. We now use socket.getaddrinfo() instead of inet_pton() to check whether we are connecting using IPv4 or IPv6. A new connection option 'force_ipv6' has been introduced. When set to True, IPv6 will be used when an address resolves to both IPv4 and IPv6. (BUG#16209119)

New in MySQL Connector/Python 1.0.8 (Dec 28, 2012)

  • Fixed MySQLConnection.ping() so it only reconnects when the reconnect argument is set to True. (BUG#15915243)
  • Fixed storing multiple results after calling stored procedures which are using arguments. (BUG#15916486)
  • Fixed support for connecting to MySQL using IPv6 addresses. (BUG#15876886)
  • Fixed handling MySQL errors when doing handshake. (BUG#15836979)
  • Fixed support for connecting to MySQL using IPv6 addresses. (BUG#15876886, BUG#15927825)
  • Fixed reading the header of MySQL packets. Previously, we were reading the MySQL packet headers as 4 (or 7) bytes long buffers from the socket. When we did have the correct length, we would immediately raise an exception. We now keep reading data from the socket until we got the full header or bail out on errors. (BUG#14829471)
  • Fixed the error message when the TCP/IP port number is not a valid integer. Strings are first converted to integer and raise an error with a proper error when this fails. (BUG#13808727)
  • Fixed authenticating for Python v2 using usernames and/or passwords which contain Unicode characters using Python v2. (BUG#14843456)
  • Fixed reporting of socket errors. (BUG#14802017)
  • Fixed executemany() to support the pyformat parameter style. (BUG#14754894): The regular expression parsing the INSERT statement did not work when pyformat markers where used, that is, '%(c1)s' for example. This is now fixed so both ANSI C printf and Python extended format codes can be used by MySQLCursor.executemany().

New in MySQL Connector/Python 1.0.7 (Oct 1, 2012)

  • Fixed formatting of client errors changing numeric to string placeholders:
  • Client and server errors have been regenerated using latest development release of MySQL v5.6.6.

New in MySQL Connector/Python 0.3.2 (Mar 16, 2011)

  • Bugs fixed:
  • lp:701081 - Doesn't install with Python 2.4

New in MySQL Connector/Python 0.1.5 (May 27, 2010)

  • It was impossible to retrieve big result sets. (bug lp:551533 and lp:586003)
  • Changing copyright from Sun to Oracle (also fixing silly typo).

New in MySQL Connector/Python 0.1.4 (May 22, 2010)

  • Reading from network was broken for bigger packages.
  • Reimplementing protocol.MySQLProtocol marking simpler and easier to maintain.
  • It is now possible tsend multiple statements tMySQL using MySQLCursor.execute(). The results are accessible by calling the method next_resultset().
  • MySQLCursor.callproc() will now store all result sets as a MySQLCursorBuffered. They are accessible using the next_proc_resultset() method. The result of the stored procedure is returned by callproc() itself as defined by PEP249.
  • MySQL DATETIME conversion tPython datetime.datetime is now much faster.
  • Some overall performance improvements.
  • Copyright notice changes

New in MySQL Connector/Python 0.1.3 (Jan 29, 2010)

  • Important memory leak fixed when closing cursors.
  • Warnings can now be raised as exceptions.
  • Fixing unicode usage and broken error message when MySQL chops them
  • Client flags can now be set correctly when connecting
  • Conversion fixes for BIT/YEARSET and Python tDATE/DATETIME
  • Adding MySQL Client Errors and raising better exceptions based on errno.