New in version 1.1.5

February 5th, 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 version 0.3.1 (January 7th, 2011)

  • a maintenance release fixing two bugs.

New in version 0.3.0 (December 10th, 2010)

  • Python v2.4 support is back.
  • Support for compressed protocol.
  • Support for SSL connections (when Python’s ssl module is available).
  • Support for packets which are bigger than 16MB.
  • Max allowed packetsize defaults to 1GB.
  • Some performance improvements.

New in version 0.2.1 (October 18th, 2010)

  • There were some logger.debug() calls which killed performance while reading and writing to the socket.

New in version 0.2 (October 13th, 2010)

  • .executemany() now optimizes INSERT statements using the MySQL multiple row syntax.
  • Setting sql_mode and time_zone when connecting as well as collation.
  • Raw Cursors can be used when you want to do the conversion yourself.
  • Unittests now bootstrap own MySQL server instance.
  • Tidying the source tree.

New in version 0.1.5 (May 27th, 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 version 0.1.4 (May 21st, 2010)

  • Reading from network was broken for bigger packages.
  • Reimplementing protocol.MySQLProtocol marking simpler and easier to maintain.
  • It is now possible to send multiple statements to MySQL 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 to Python datetime.datetime is now much faster.
  • Some overall performance improvements.
  • Copyright notice changes.

New in version 0.1.3 (January 29th, 2010)

  • A memory leak got fixed when closing cursors; warnings can be raised as exceptions; client flags are respected; and some fixes around data type conversion.

New in version 0.1.2 (December 23rd, 2009)

  • Fixing unicode usage for both Python 2.4+ and 3.1
  • Setting 'use_unicode' at connection time is now working.
  • removing regular expression for quoting backslashes.
  • Adding test case for bug lp:499410
  • Py3k specific:
  • Strings from MySQL are decoded to the given character when use_unicode is false
  • The statement is encoded just before sending it to the MySQL server. Internally, all is done in unicode.
  • In removing _unicode_to_mysql, adding _bytes_to_mysql
  • MySQLCursor.__unicode__ is obsolete and replaced with __str__
  • Removing tests for which the methods were deleted.
  • Fix setting character set at connection
  • mysql.connector.Connect(charset='latin1') now works as expected
  • Default character set is (still) UTF-8.
  • SET NAMES is only used when changing character set after connecting. Use MySQL.set_charset(charsetname) to change.
  • Test case added for bug report; fixing test case in to reflect the new default character set 'utf-8'.