MySQL Connector/C 6.1.11 GA has been released

Dear MySQL Users,

A new GA (general availability) version of MySQL Connector/C has been
made available: MySQL Connector/C 6.1.11 GA. The MySQL Connector/C 6.1
implements the MySQL C API for connecting client applications to the
MySQL Server 5.5 or newer.

You can download the production release at:
http://dev.mysql.com/downloads/connector/c/6.1.html

MySQL Connector C (Commercial) will be available for download on the My
Oracle Support (MOS) website. This release will be available on
eDelivery (OSDC) in next month’s upload cycle.

Please see the documentation and the README file in the source distribution
for a detailed description of bugs that have been fixed.

Enjoy!

=======================================================================

Changes in MySQL Connector/C 6.1.11 (2017-07-24)

Security Notes

* The linked OpenSSL library for MySQL Connector/C 6.1
Commercial has been updated to version 1.0.2l. For a
description of issues fixed in this version, see
http://www.openssl.org/news/vulnerabilities.html.
This change does not affect the Oracle-produced MySQL
Community build of Connector/C, which uses the yaSSL
library instead. (Bug #26321042)

Bugs Fixed

* Microsoft Windows: Program Database (PDB) files (with
file name extension .pdb) for debugging now are available
as -debug Zip packages. They are intended for use with
the main Connector/C Zip packages and should be unpacked
on top of an unpacked main package. (Bug #23283189)

* If the mysql_stmt_close() C API function was called, it
freed memory that later could be accessed if
mysql_stmt_error(), mysql_stmt_errno(), or
mysql_stmt_sqlstate() was called. To obtain error
information after a call to mysql_stmt_close(), call
mysql_error(), mysql_errno(), or mysql_sqlstate()
instead. (Bug #25988703)

On behalf of the Oracle MySQL Release Engineering Team,
-Sreedhar S

MySQL Connector/ODBC 5.3.9 has been released

MySQL Connector/ODBC 5.3.9, a new version of the ODBC driver for
the MySQL database management system, has been released.

The available downloads include both a Unicode driver and an ANSI
driver based on the same modern codebase. Please select the driver type
you need based on the type of your application – Unicode or ANSI.
Server-side prepared statements are enabled by default. It is suitable
for use with any MySQL version from 5.5.

This is the fourth release of the MySQL ODBC driver conforming to the
ODBC 3.8 specification. It contains implementations of key 3.8 features,
including self-identification as a ODBC 3.8 driver, streaming of output
parameters (supported for binary types only), and support of the
SQL_ATTR_RESET_CONNECTION connection attribute (for the Unicode driver
only).

Also, Connector/ODBC 5.3 introduces a GTK+-based setup library
providing a GUI DSN setup dialog on some Unix-based systems, currently
included in the Debian 7/8/9, EL6/OL6, EL7/OL7 (64-bit only), Fedora 24/25/26,
FreeBSD 10/11, SLES 12, Ubuntu 14/16/17 packages. Other new
features in the 5.3 driver are FileDSN and Bookmarks support.

The release is now available in source and binary form for a number of
platforms from our download pages at

http://dev.mysql.com/downloads/connector/odbc/5.3.html

For information on installing, please see the documentation at

http://dev.mysql.com/doc/connector-odbc/en/connector-odbc-installation.html

Changes in MySQL Connector/ODBC 5.3.9 (2017-07-24, General
Availability)

Functionality Added or Changed

  • When compiling Connector/ODBC on Windows platforms, it can now be linked statically (equivalent to the /MT compiler option in Visual Studio) or dynamically (equivalent to the /MD compiler option in Visual Studio) to the Visual C++ runtime. The default option is to link dynamically; if you want to link statically. set the new CMake option, STATIC_MSVCRT, to true. Another new CMake option, WITH_NODEFAULTLIB, has been introduced for specifying the Visual C++ runtime you want to link Connector/ODBC to when using mixed link types (that is, when link type to the Visual C++ runtime differs for Connector/ODBC and the MySQL client library it links to). See Building Connector/ODBC from a Source Distribution on Windows(http://dev.mysql.com/doc/connector-odbc/en/connector-odbc-installation-source-windows.html) for details.

Bugs Fixed

  • The SQLForeignKeys() function returned an empty result set when the information schema was being used. (Bug #26388694)
  • Calling SQLExecute() after calling SQLFreeStmt() with the SQL_RESET_PARAMS option resulted in an assertion failure. With this fix, a proper error is now thrown in the situation. (Bug #19148246)
  • A segmentation fault occurred in SQLFetch() when SQL_ATTR_CURSOR_TYPE was set to SQL_CURSOR_DYNAMIC. (Bug #18805392)
  • Connector/ODBC quit unexpectedly in SQLForeignKeys() when SQL_MODE was set to ANSI_QUOTES. (Bug #18641824)

On behalf of the MySQL/Oracle Release Engineering Team
Piotr Obrzut

MySQL Connector/J 5.1.43 has been released

Dear MySQL Users,

MySQL Connector/J 5.1.43, a maintenance release of the production 5.1 branch has been released. Connector/J is the Type-IV pure-Java JDBC driver for MySQL.

MySQL Connector Java is available in source and binary form from the Connector/J download pages at http://dev.mysql.com/downloads/connector/j/5.1.html and mirror sit
repositories.

MySQL Connector Java (Commercial) is already available for download on the My Oracle Support (MOS) website. This release will be available on eDelivery
(OSDC) in next month’s upload cycle.

As always, we recommend that you check the “CHANGES” file in the download archive to be aware of changes in behavior that might affect your application.

MySQL Connector/J 5.1.43 includes the following general bug fixes and improvements, also available in more detail on http://dev.mysql.com/doc/relnotes/connector-j/en
nges in MySQL Connector/J 5.1.43 (2017-07-21)

Version 5.1.43 is a maintenance release of the production 5.1 branch. It is suitable for use with MySQL Server versions 5.5, 5.6, and 5.7. It supports the Java Da
(JDBC) 4.2 API.

Functionality Added or Changed

* Update the time zone mappings using the latest IANA and CLDR time zone databases. (Bug #25946965)

* A new option for the loadBalancingStrategy connection property called serverAffinity has been added. The servers listed in the new connection property serverA
hould be a subset of the servers in the host list of the connection URL) are contacted in the order they are listed until a server is available or until the list of
at which point a random load-balancing strategy is used with the hosts not listed by serverAffinityOrder. See descriptions for loadBalancingStrategy and serverAffin
tasource Class Names, URL Syntax and Configuration Properties for Connector/J
(http://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html)
for details. (Bug #20182108)

Bugs Fixed

* Secure JDBC connections did not fall back to the default truststore when a custom one was not provided. (Bug
#26243128)

* Connector/J failed a number of regression tests in the testsuite related to geographic information system (GIS)
functions because of changes to GIS support by the MySQL server. The fix corrects the tests. (Bug #26239946, Bug
#26140577)

* Attempts to connect to a server started with collation utf8mb4_de_pb_0900_ai_ci resulted in null pointer exceptions. (Bug #26090721)

* In com/mysql/jdbc/ServerPreparedStatement.java, the arguments resultSetType and resultSetConcurrency for a call of Connection.preparedStatement() were swapped
#25874048, Bug #85885)

* A NullPointerException was returned when getDate(),
getTime(), or getTimestamp() was called with a null Calendar. This fix makes Connector/J throw an SQLException in the case. (Bug #25650305)

* Some JDBC proxied objects were missing the proper handling of the equals() methods, thus even comparison of one of these proxied objects to its own self with
e. This patch introduces proper handling for the equals() method in all the relevant proxies. (Bug #21931572, Bug #78313)

* A server-side prepared statement was not closed when the same statement was being prepared again while the original statement was being cached. This was cause
cement of the cache entry of the old statement by the new. When this happened repeatedly, it caused eventually the complaint that max_prepared_stmt_count was exceede
e that when a cache entry for a statement replaces an older one, the older statement is immediately closed. (Bug
#20066806, Bug #74932)

On Behalf of the MySQL/Oracle Release Engineering Team,
Hery Ramilison

MySQL Connector/Python 8.0.4-dmr has been released

Dear MySQL users,

MySQL Connector/Python 8.0.4 dmr is the fifth development release of the
MySQL Connector Python 8.0 series. This series adds support for the new X
DevAPI. The X DevAPI enables application developers to write code that
combines the strengths of the relational and document models using a
modern, NoSQL-like syntax that does not assume previous experience
writing traditional SQL.

To learn more about how to write applications using the X DevAPI, see
http://dev.mysql.com/doc/x-devapi-userguide/en/.

For more information about how the X DevAPI is implemented in
MySQL Connector/Python, and its usage, see
http://dev.mysql.com/doc/dev/connector-python

Please note that the X DevAPI requires MySQL Server version 5.7.12 or
higher with the X Plugin enabled. For general documentation about how to
get started using MySQL as a document store, see

http://dev.mysql.com/doc/refman/5.7/en/document-store.html

To download MySQL Connector/Python 8.0.4 dmr, see the “Development Releases”
tab at
http://dev.mysql.com/downloads/connector/python/

Enjoy!



Changes in MySQL Connector/Python 8.0.4 (2017-07-17, Development Milestone)

   MySQL Connectors and other MySQL client tools and
   applications now synchronize the first digit of their version
   number with the (highest) MySQL server version they support.
   For example, MySQL Connector/Python 8.0.12 would be designed
   to support all features of MySQL server version 8 (or lower).
   This change makes it easy and intuitive to decide which
   client version to use for which server version.

   Connector/Python 8.0.4 is the first release to use the new
   numbering. It is the successor to Connector/Python 2.2.3.

   Character Set Support

     * Connector/Python now supports MySQL servers configured to
       use utf8mb4 as the default character set.

   Functionality Added or Changed

     * To avoid unintentional changes to all items in a
       collection, the Collection.modify() and
       Collection.remove() methods now require a nonempty
       selection expression as argument. To intentionally apply
       an operation to an entire collection, pass a condition
       that always evaluates to true, such as True. A similar
       change was made to Table.update() and Table.delete().
       (Bug #25991574)

     * For MSI and Solaris packages, the pure Python Protobuf
       support implementation was replaced by a C++ extension.
       This enables Connector/Python to support Python 2 and 3
       as well Protobuf 2 and 3.

     * The NodeSession class has been renamed to Session, and
       the XSession class has been removed.

     * Connections created using Session objects now are secure
       by default. Also, the ssl-enabled connection option has
       been replaced by ssl-mode. Permitted ssl-mode values are
       disabled, required (the default), verify_ca and
       verify_identity.

     * The format of document ID values generated when adding
       documents to a collection has changed. It is still a
       string of 32 hexadecimal digits based on UUID, but the
       order of digits was changed to match the requirement of a
       stable ID prefix.

   Bugs Fixed

     * The C Extension was not installed by some
       Connector/Python installers, such as Solaris .pkg and
       macOS .dmg installer packages. (Bug #24422244)

     * Collection.drop_index("name") incorrectly returned an
       instance of DropCollectionIndexStatement.


Documentation
——————–

Online:
http://dev.mysql.com/doc/connector-python/en/index.html

The source distribution includes the manual in various formats under
the docs/ folder.

Reporting Bugs
——————–

We welcome and appreciate your feedback and bug reports:
http://bugs.mysql.com/

On Behalf of the MySQL/Oracle Release Engineering Team,
Balasubramanian Kandasamy

MySQL Connector/Net 8.0.8-dmr has been released

MySQL Connector/Net 8.0.8 is the fifth development release that expands cross-platform
support to Linux and macOS when using Microsoft’s .NET Core framework. Now, .NET
developers can use the X DevAPI with .NET Core and Entity Framework Core (EF Core)
1.0 to create server applications that run on Windows, Linux and macOS. We are very
excited about this change and really look forward to your feedback on it!

MySQL Connector/Net 8.0.8 is also the seventh development release of MySQL
Connector/Net to add support for the new X DevAPI. The X DevAPI enables application
developers to write code that combines the strengths of the relational and document
models using a modern, NoSQL-like syntax that does not assume previous experience
writing traditional SQL.

To learn more about how to write applications using the X DevAPI, see
http://dev.mysql.com/doc/x-devapi-userguide/en/index.html.
For more information about how the X DevAPI is implemented in Connector/Net, see
http://dev.mysql.com/doc/dev/connector-net.

Note

The X DevAPI requires at least MySQL Server version 5.7.12 or higher with the X
Plugin enabled. For general documentation about how to get started using MySQL
as a document store, see http://dev.mysql.com/doc/refman/5.7/en/document-store.html.

To download MySQL Connector/Net 8.0.8-dmr, see the “Development Releases” tab at
http://dev.mysql.com/downloads/connector/net/

 


Changes in MySQL Connector/Net 8.0.8 (2017-07-10, Development Milestone)

   MySQL Connectors and other MySQL client tools and
   applications now synchronize the first digit of their version
   number with the (highest) MySQL server version they support.
   For example, MySQL Connector/Net 8.0.12 would be designed to
   support all features of MySQL server version 8 (or lower).
   This change makes it easy and intuitive to decide which
   client version to use for which server version.

   MySQL Connector/Net 8.0.8 is the first release to use the new
   numbering. It is the successor to MySQL Connector/Net 7.0.7.

     * Functionality Added or Changed

     * Bugs Fixed

   Functionality Added or Changed

     * X DevAPI: The format of document ID values generated when
       adding documents to a collection has changed. It is still
       a string of 32 hexadecimal digits based on UUID, but the
       order of digits was changed to match the requirement of a
       stable ID prefix.

     * All connections created using MySQL Connector/Net now are
       secure by default. Also, the Ssl-Enable connection option
       has been replaced by Ssl-Mode. Permitted Ssl-Mode values
       are None, Required (the default), VerifyCA, and
       VerifyFull.

       With this change, a non-SSL enabled server now requires
       the Ssl-Mode option be set to None explicitly in the
       connection string or the connection will fail.

     * X DevAPI: It is no longer permitted to pass an empty
       search condition, such as the NULL value or an empty
       string, to the Collection.Modify and Collection.Remove
       methods.
	
     * X DevAPI: The NodeSession class has been renamed to
       Session and the MySQLX.GetNodeSession method has been
       renamed to MySQLX.GetSession. Also, the XSession class
       has been removed.

     * X DevAPI: When creating a new connection, multiple hosts
       now can be specified as part of the connection string,
       which will try each host until a successful connection is
       established or all elements from the host list have been
       tried. The following connection-string formats are
       supported:

	    var mySession = MySQLX.GetSession(
	      "mysqlx://dbuser:password@[" +
	      "localhost:33060," +
	      "192.1.10.10:33060," +
	      "[2001:db8:85a3:8d3:1319:8a2e:370:7348]:33060" +
	      "]"
	    );

	    var mySession = MySQLX.GetSession(
	      "user=dbuser;" +
	      "password=dbpassword;" +
	      "server=" +
	      "192.1.10.10," +
	      "server.example.com," +
	      "localhost;" +
	      "port=33060;"
	    );

   Bugs Fixed

     * EF Core: The Database First feature did not support the
       following data types: BINARY, VARBINARY, MEDIUMBLOB,
       LONGBLOB, SET, DATE, TIME, and YEAR. (Bug #25493209)

     * EF Core: Database First support produced an error when
       the existing MySQL database included one or more views.
       (Bug #25493086)

     * EF Core: Using
       System.ComponentModel.DataAnnotations.Schema.TableAttribu
       te to initialize a new class instance that specified the
       name of an existing MySQL table produced incorrect
       mappings of table and column names.
       (Bug #25394223, Bug #84423)

Nuget

Packages are available at:

https://www.nuget.org/packages/MySql.Data/8.0.8-dmr
https://www.nuget.org/packages/MySql.Web/8.0.8-dmr
https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore/8.0.8-dmr
https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore.Design/8.0.8-dmr

Enjoy and thanks for the support!

On Behalf of MySQL/Oracle Release Engineering Team
Prashant Team

MySQL Connector/Java 8.0.7-dmr has been released

Dear MySQL users,

MySQL Connector/J 8.0.7 Development Release is a development milestone release for the 8.0.x series.
This release includes the following new features and changes, also described in more detail on https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/news-8-0-7.html

MySQL Connectors and other MySQL client tools and applications now synchronize the first digit of their version number with the (highest) MySQL server version they support.
This change makes it easy and intuitive to decide which client version to use for which server version.

Connector/J 8.0.7 is the first release to use the new numbering. It is the successor to Connector/J 6.0.6

As always, we recommend that you check the “CHANGES” file in the download archive to be aware of changes in behavior that might affect your application.

To download MySQL Connector/J 8.0.7 dmr, see the “Development Releases” tab at http://dev.mysql.com/downloads/connector/j/

Enjoy!


Changes in MySQL Connector/J 8.0.7 (2017-07-10, Development Milestone)

MySQL Connectors and other MySQL client tools and
applications now synchronize the first digit of their version
number with the (highest) MySQL server version they support.
This change makes it easy and intuitive to decide which
client version to use for which server version.

Connector/J 8.0.7 is the first release to use the new
numbering. It is the successor to Connector/J 6.0.6.

* Functionality Added or Changed

* Bugs Fixed

Functionality Added or Changed

* X DevAPI: There are changes to some methods related to
the Result interface:

+ getLastDocumentId() and getLastDocumentIds() have
been replaced with getDocumentId() and
getDocumentIds(), which are put under a new
AddResult interface that extends Result.

+ A new getAutoIncrementValue() method is added to the
new InsertResult interface that extends Result.
See MySQL Connector/J X DevAPI Reference
(http://dev.mysql.com/doc/dev/connector-j) for more
details. (Bug #25207784)

* X DevAPI: It is no longer permitted to pass an empty
search condition, such as the NULL value or an empty
string, to the Collection.Modify() and
Collection.Remove() methods.

* X DevAPI: Connections using the X Protocol are now secure
by default. Also, the xdevapi.ssl-enable connection
option has been replaced by the xdevapi.ssl-mode option,
which has DISABLED, REQUIRED (default), VERIFY_CA, and
VERIFY_IDENTITY as its permitted values; see the
description for the new option in Configuration
Properties
http://dev.mysql.com/doc/connector-j/8.0/en/connector-j-
reference-configuration-properties.html
for details.

* X DevAPI: Consolidated the BaseSession, NodeSession, and
XSession interfaces into a single
com.mysql.cj.api.xdevapi.Session interface. The following
related changes were also made:

+ Renamed XSessionFactory to SessionFactory.

+ Consolidated the AbstractSession, NodeSessionImpl,
and XSessionImpl classes into the
com.mysql.cj.xdevapi.SessionImpl class.

+ Removed the Session.bindToDefaultShard() method and
the VirtualNodeSession interface.

+ The mysqlx.getNodeSession() method has been renamed
to mysqlx.getSession() and it now returns a Session
object.

+ The DatabaseObject.getSession() method now returns a
Session object (instead of the old Session
interface).
See MySQL Connector/J X DevAPI Reference
(http://dev.mysql.com/doc/dev/connector-j) for more
details.

* To avoid using JDBC statements inside core Connector/J
classes, the following changes have been implemented:

+ Created a new com.mysql.cj.api.Query interface,
which is implemented by StatementImpl.

+ Replaced the
com.mysql.cj.api.jdbc.interceptors.StatementIntercep
tor interface with the
com.mysql.cj.api.interceptors.QueryInterceptor
interface.

+ Added a new method, PacketPayload
preProcess(PacketPayload queryPacket), to
QueryInterceptor.

+ Renamed the connection property
statementInterceptors to queryInterceptors. See
Configuration Properties
(http://dev.mysql.com/doc/connector-j/8.0/en/connector-j-
reference-configuration-properties.html)
for details.

* Added Japanese collation for the utf8mb4 character set.

Bugs Fixed

* X DevAPI: createView() failed with a NullPointerException
when there were null inputs to it. This fix adds checks
for nulls, and makes Connector/J throw the proper errors
for them. (Bug #25575156)

* X DevAPI: createaTable() failed with a
NullPointerException when there were null inputs to it.
This fix adds checks for nulls, and makes Connector/J
throw the proper errors for them. (Bug #25575103)

* X DevAPI: The connection properties
enabledSSLCipherSuites, clientCertificateKeyStoreUrl,
clientCertificateKeyStoreType, and
clientCertificateKeyStorePassword were ignored for
connections using the X Protocol. (Bug #25494338)

* X DevAPI: Calling getNodeSession() with an URL string
containing SSL parameters caused a
CJCommunicationsException. This has been fixed by
creating a byte buffer to handle SSL handshake data.
(Notice that getNodeSession() has since been consolidated
into getSession().) (Bug #23597281)

* X DevAPI: Concurrent asynchronous operations resulted in
hangs, null pointer exceptions, or other unexpected
exceptions. This has been fixed by correcting a number of
problems with the SerializingBufferWriter and by limiting
the number of buffers sent with a gathering write. (Bug
#23510958)

* X DevAPI: When a thread failed to make a connection to
the server using the X Protocol, the client application
hung. A new connection property,
xdevapi.asyncResponseTimeout (default value is 300s), now
provides a duration beyond which the attempt to connect
timeouts, and a proper error is then thrown. See
description for the new option in Configuration
Properties
(http://dev.mysql.com/doc/connector-j/8.0/en/connector-j-
reference-configuration-properties.html)
for details. (Bug #22972057)

* Connector/J failed a number of regression tests in the
test suite related to geographic information system (GIS)
functions, because of changes to GIS support by the MySQL
server. The fix corrects the tests. (Bug #26239946, Bug
#26140577)

* Configuration templates named by the connection property
useConfigs were not recognized by Connector/J. (Bug
#25757019, Bug #85555)

* A NullPointerException was returned when getDate(),
getTime(), or getTimestamp() was called with a null
Calendar. This fix makes Connector/J throw an
SQLException in the case. (Bug #25650305)

* An ArrayIndexOutOfBoundsException was thrown when a
server-side prepared statement was used and there was a
NULL in a BLOB, TEXT, or JSON type column in the
ResultSet. (Bug #25215008, Bug #84084)

On Behalf of MySQL/ORACLE RE Team
Gipson Pulla

MySQL Connector/C++ 8.0.5-dmr has been released

Dear MySQL users,

MySQL Connector/C++ 8.0.5-dmr is the next development milestone release of the MySQL Connector/C++ 8.0 series (formely 2.0 series).

Connector/C++ 8.0 can be used to access MySQL implementing Document Store or in a traditional way, using SQL queries. It allows writing both C++ applications using X DevAPI or plain C applications using XAPI.

To learn more about how to write applications using X DevAPI, see “X DevAPI User Guide”

https://dev.mysql.com/doc/x-devapi-userguide/en/

and “X DevAPI Reference” at

https://dev.mysql.com/doc/dev/connector-cpp/devapi_ref.html

For more information about using plain C XAPI see “XAPI Reference” at

https://dev.mysql.com/doc/dev/connector-cpp/xapi_ref.html

For generic information on using Connector/C++ 8.0, see

https://dev.mysql.com/doc/dev/connector-cpp/

Note

Connector/C++ 8.0 requires MySQL Server version 5.7.12 or higher with X Plugin enabled. For general documentation about how to get started using MySQL as a document store, see “Using MySQL as a Document Store”

https://dev.mysql.com/doc/refman/5.7/en/document-store.html

To download MySQL Connector/C++ 8.0.5-dmr, see the “Development Releases” tab at

https://dev.mysql.com/downloads/connector/cpp/



Changes in MySQL Connector/C++ 8.0.5-dmr (2017-07-10, development milestone)

   MySQL Connectors and other MySQL client tools and
   applications now synchronize the first digit of their version
   number with the (highest) MySQL server version they support.

   Future MySQL Connector/C++ 8.0 releases would be designed to
   support more/all features of MySQL server version 8 (or lower).
   This change makes it easy and intuitive to decide which
   client version to use for which server version."

   Connector/C++ 8.0.5-dmr is the first release to use the new
   numbering. It is the successor to Connector/C++ 2.0.4.

   Functionality Added or Changed

     * Connector/C++ now supports MySQL servers configured to
       use utf8mb4 as the default character set.

       Currently, Connector/C++ works only with UTF-8 and ASCII
       default character sets (utf8, utf8mb4, and ascii). If a
       user creates a table with text columns that use a
       non-UTF-8 character set, and this column holds a string
       with non-ASCII characters, errors will occur for attempts
       to access that string (for example, in a query result).

       On the other hand, if strings consist only of ASCII
       characters, correct result are obtained regardless of the
       character set. Also, it is always possible to obtain the
       raw bytes of the column value, for any character set.

     * The SqlResult class now implements the
       getAffectedRowsCount() and getAutoIncrementValue()
       X DevAPI methods. (Bug #25643081)

     * To avoid unintentional changes to all items in a
       collection, the Collection::modify() and
       Collection::remove() methods now require a nonempty
       selection expression as argument.

     * For X DevAPI or XAPI, when creating a new session,
       multiple hosts can be tried until a successful connection
       is established. A list of hosts can be given in a
       connection string or as session creation options, with or
       without priorities.

       X DevAPI examples:

         Session sess(
           "mysqlx://user:password@["
             "server.example.com,"
             "192.0.2.11:33060,"
             "[2001:db8:85a3:8d3:1319:8a2e:370:7348]:1"
           "]/database"
         );

         Session sess({ SessionSettings::USER, "user",
                        SessionSettings::PWD, "password,
                        SessionSettings::HOST, "server.example.com",
                        SessionSettings::HOST, "192.0.2.11",
                        SessionSettings::PORT, 33060,
                        SessionSettings::HOST, "[2001:db8:85a3:8d3:1319:8a2e:370:7348]",
                        SessionSettings::PORT, 1,
                        SessionSettings::DB, "database" });

       XAPI examples:

         sess = mysqlx_get_session_from_url(
                 "mysqlx://user:password@["
                    "(address=127.0.0.1,priority=2),"
                    "(address=example.com:1300,priority=100)"
                 "]/database",
                 err_msg, &err_code);

         mysqlx_opt_type_t *sess_opt = mysqlx_session_option_new();
         mysqlx_session_option_set(sess_opt,
           MYSQLX_OPT_USER, "user",
           MYSQLX_OPT_PWD, "password",
           MYSQLX_OPT_HOST, "127.0.0.1",
           MYSQLX_OPT_PRIORITY, 2,
           MYSQLX_OPT_HOST, "example.com",
           MYSQLX_OPT_PORT, 1300,
           MYSQLX_OPT_PRIORITY, 100,
           MYSQLX_OPT_DB, "database");

         mysqlx_session_t *sess = mysqlx_get_session_from_options(
           sess_opt, err_buf, &err_code
         );

     * The NodeSession class has been renamed to Session, and
       the XSession class has been removed.

     * Connections created using Session objects now are secure
       by default. Also, the ssl-enabled connection option has
       been replaced by ssl-mode. Permitted ssl-mode values are
       disabled, required (the default), verify_ca and
       verify_identity.

     * Option names within connection strings are now treated as
       case insensitive. Option values are still case sensitive
       by default.

   Bugs Fixed

     * It is now possible to call stmt.execute() multiple times.
       Calling methods that modify statement parameters should
       modify the statement sent with execute(). This is also
       true for binding new values to named parameters.
       (Bug #25858159)

     * Compiler errors occurred when creating a SessionSettings
       object due to ambiguity in constructor resolution.
       (Bug #25603191)

     * collection.add() failed to compile if called with two STL
       container arguments. (Bug #25510080)

     * These expression syntaxes are now supported:

         CHARSET(CHAR(X'65'))
         'abc' NOT LIKE 'ABC1'
         'a' RLIKE '^[a-d]'
         'a' REGEXP '^[a-d]'
         POSITION('bar' IN 'foobarbar')

       These expression syntaxes are not supported but a better
       error message is provided when they are used:

         CHARSET(CHAR(X'65' USING utf8))
         TRIM(BOTH 'x' FROM 'xxxbarxxx')
         TRIM(LEADING 'x' FROM 'xxxbarxxx')
         TRIM(TRAILING 'xyz' FROM 'barxxyz')
         'Heoko' SOUNDS LIKE 'h1aso'

       (Bug #25505482)

On Behalf of the MySQL/Oracle Release Engineering Team,
Kent Boortz

MySQL Connector/NodeJS 8.0.7-dmr has been released

MySQL Connector/Node.js is a new Node.js driver for use with the X
DevAPI. This release, v8.0.7 , is the first development release of the
MySQL Connector/Node.js 8.0 series.

The X DevAPI enables application developers to write code that combines
the strengths of the relational and document models using a modern,
NoSQL-like syntax that does not assume previous experience writing
traditional SQL.

MySQL Connector/Node.js can be downloaded through npm (see
https://www.npmjs.com/package/@mysql/xdevapi for details) or from
https://dev.mysql.com/downloads/connector/nodejs/.

To learn more about how to write applications using the X DevAPI, see
http://dev.mysql.com/doc/x-devapi-userguide/en/. For more information
about how the X DevAPI is implemented in MySQL Connector/Node.js, and
its usage, see http://dev.mysql.com/doc/dev/connector-nodejs/.

Note

Please note that the X DevAPI requires at least MySQL Server version
5.7.12 or higher with the X Plugin enabled. For general documentation
about how to get started using MySQL as a document store, see
http://dev.mysql.com/doc/refman/5.7/en/document-store.html.

MySQL Connectors and other MySQL client tools and applications now
synchronize the first digit of their version number with the (highest)
MySQL server version they support. This change makes it easy and intuitive
to decide which client version to use for which server version.

Connector/Node.js 8.0.7 is the first release to use the new
numbering. It is the successor to Connector/Node.js 1.0.6.

Functionality Added or Changed

  • It is no longer permitted to pass an empty search condition, such as the NULL value or an empty string, to the Collection.modify() and Collection.remove() methods.
  • A number of changes have been implemented for the “drop” methods:
    • The “drop” methods are now made available at the same level as the corresponding “create” methods. For example, the dropCollection() and dropTable() methods have been removed from the XSession class (which has now been consolidated into the Session class) and moved under the Schema class; under the same principle, the drop() method has been removed from the Collection and Table classes.
    • The “drop” methods now succeed even if the objects to be dropped do not exist.
    • dropView() is now asynchronous and behaves exactly like dropTable() and dropCollection() by implicitly executing the operation and returning a promise that will hold the result of the drop operation.
  • A configuration handler interface, mysqlx.config, has been created for managing persisted session configurations. See MySQL Connector/Node.js with X DevAPI
    (http://dev.mysql.com/doc/dev/connector-nodejs/) for details.
  • There are a few changes with regard to secure connections to MySQL servers:
    • Connections are now secure by default.
    • The connection option ssl-enable has been replaced by the ssl-mode option, which has DISABLED, REQUIRED (default), and VERIFY_CA as its permitted values
    • Using the ssl-crl option requires the use of the ssl-ca option and that ssl-mode=VERIFY_CA; this is due to an internal requirement of the Node.js core platform.
  • Consolidated the BaseSession, NodeSession, and XSession into a single Session class. The following related changes were also made:
    • The mysqlx.getNodeSession() method is renamed to getSession and returns a Session object.
    • The DatabaseObject.getSession() now returns a Session object.
  • A new client-side failover feature has been implemented: when creating a new connection, multiple hosts now can be specified in the connection string, and Connector/Node.js tries each host until a successful connection is established or until all hosts have been tried. See Tutorial: Getting Started
    (http://dev.mysql.com/doc/dev/connector-nodejs/tutorial-Getting_Started.html)
    for details
  • Connector/Node.js now supports connecting to a local server using Unix sockets. See Tutorial: Getting Started
    (http://dev.mysql.com/doc/dev/connector-nodejs/tutorial-Getting_Started.html)
    for details.
  • The format of the document ID value generated when adding a document to a collection has changed. It is still a string of 32 hexadecimal digits based on a UUID, but the order of digits has been changed to match the requirement of a stable ID prefix.

Bugs Fixed

    • It was not possible to create a new session for a user with a SHA256 password via the PLAIN authentication mechanism. (Bug #26117627)
    • The handling of large JSON arrays was problematic, and would cause an exception to be thrown. (Bug #26084604)
    • Attempting to use bind when removing a document from a collection would not succeed, and an exception would be thrown. (Bug #26029551)
    • The Table.update() implementation did not require a SearchConditionStr parameter, and not using this parameter could result in updating all the rows of a given table. A client-side exception is now thrown if the SearchConditionStr parameter is undefined or empty. (Bug #25993174)
    • The Table.delete() implementation did not require a SearchConditionStr parameter, and not using this parameter could result in deleting all the rows of a given table. A client-side exception is now thrown if the SearchConditionStr parameter is undefined or empty. (Bug #25992969)

On behalf of the MySQL/Oracle Release Engineering Team
Piotr Obrzut

MySQL Connector/NET 6.10.2 beta has been released

Dear MySQL users,

MySQL Connector/Net 6.10.2 beta is the third release which supports Scaffold-DbContext, that enables the creation of corresponding model classes from an existing database that are compatible with Entity Framework (EF) Core 1.1.

To download MySQL Connector/Net 6.10.2 beta, see the “Development Releases” tab at http://dev.mysql.com/downloads/connector/net/

Changes in MySQL Connector/Net 6.10.2 (2017-07-04, Beta)

Functionality Added or Changed

* The previously deprecated Old Syntax (OldSyntax, Use Old Syntax, UseOldSyntax) connection-string option was removed.

* EF Core: Tables from an existing database can be specified with command-line tools when scaffolding a DbContext. The MySQL provider generates an entity type for each table in the DbContext. By default, all tables in the database are included unless a list of tables is provided.

For Package Manager Console Tools, use the Scaffold-DbContext command with the -Table <tablename, tablename, …> common parameter.

For .NET Core CLI Tools, use the dotnet ef dbcontext scaffold command with the
–table option for each table to add.

* EF Core: The MySQL provider now creates a new schema when the entity.ToTable method within a derived DbContext class specifies the name of a nonexistent schema.

* EF Core: The Connector/Net implementation of EF Core now includes extended maximum lengths for several string data types to enable the use of longer strings.

* Connector/Net no longer supports MySQL Fabric.

Bugs Fixed

* EF Core: The –force option when used with the dotnet ef dbcontext scaffold command did not overwrite the existing output files as expected. (Bug #25493508)

* EF Core: The Database First command used to create a DbContext class emitted an error when used with either the sakila or world database sample. (Bug #25493336)

* EF Core: The Database First feature did not support the following data types: BINARY, VARBINARY, MEDIUMBLOB, LONGBLOB, SET, DATE, TIME, and YEAR. (Bug #25493209)

* EF Core: JSON data exchange format was not supported by the Database First feature. (Bug #25493143)

* EF Core: Database First support produced an error when the existing MySQL database included one or more views. (Bug #25493086)

* EF Core: Using System.ComponentModel.DataAnnotations.Schema.TableAttribute to initialize a new class instance that specified the name of an existing MySQL table produced incorrect mappings of table and column names. (Bug #25394223, Bug #84423)

Nuget packages are available at:

https://www.nuget.org/packages/MySql.Data/6.10.2-beta https://www.nuget.org/packages/MySql.Web/6.10.2-beta https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore/6.10.2-beta https://www.nuget.org/packages/MySql.Data.EntityFrameworkCore.Design/6.10.2-beta

Enjoy and thanks for the support!

On behalf of the MySQL Release Team,
Nawaz Nazeer Ahamed

MySQL for Excel 1.3.7 has been released

Dear MySQL users,

The MySQL Windows Experience Team is proud to announce the release of MySQL for Excel version 1.3.7. This is a maintenance release for 1.3.x. It can be used for production environments.

MySQL for Excel is an application plug-in enabling data analysts to very easily access and manipulate MySQL data within Microsoft Excel. It enables you to directly work with a MySQL database from within Microsoft Excel so you can easily do tasks such as:

  • Importing MySQL data into Excel
  • Exporting Excel data directly into MySQL to a new or existing table
  • Editing MySQL data directly within Excel

MySQL for Excel is installed using the MySQL Installer for Windows.The MySQL Installer comes in 2 versions:

  • Full which includes a complete set of MySQL products with their binaries included in the download.
  • Web (network install) which will just pull the MySQL for Excel over the web and install it when run.

You can download MySQL Installer from our official Downloads page at http://dev.mysql.com/downloads/installer/

The MySQL for Excel product can also be downloaded by using the product standalone installer found at this link: http://dev.mysql.com/downloads/windows/excel/

Changes in MySQL for Excel 1.3.7 (2017-05-24)

Functionality Added or Changed

  • The way MySQL for Excel shares data-editing sessions among users and between computers was improved. (Bug #25509085, Bug #73314)
  • The Append Excel Data to Table operation was updated with new advanced options to manage the behavior of rows containing unique key values that are duplicates of those in the database. (Bug #25479653, Bug #83801)
  • Added a new global option that specifies how to format spatial data as text: Well-Known Text, Keyhole Markup Language, Geography Markup Language, or GeoJSON. (Bug #22081263)
  • Enhanced the logic that migrates stored MySQL connections to the MySQL Workbench connections.xml file. In previous versions, the migration was offered and if not done at that moment, the dialog to migrate was shown every time MySQL for Excel was launched. There was no way to choose to continue storing MySQL connections in the MySQL for Excel configuration folder, instead of merging them with MySQL Workbench. Now, the Connections Migration dialog offers a way to postpone the migration by one hour, one day, one week, one month, or indefinitely. If the migration is postponed, the dialog is shown again after that time elapses. If the migration is postponed indefinitely, then an option is added to the Options dialog that permits the migration of connections to be done manually, as long as MySQL Workbench is installed.
  • Support for MySQL Fabric was removed.

Bugs Fixed

  • SSL connections when created with MySQL Workbench should be inactive within MySQL for Excel, which does not support SSL connections. (Bug #25962564)
  • Selecting a schema containing at least one stored procedure for a MySQL 8.0 or 8.1 connection emitted an error. (Bug #25962347)
  • Empty string values within Excel column data that were used in an export or append-data operation caused the generated SQL queries to have no value, instead of an empty value corresponding to the data type of the target column (for example: 0 for Integer; false for Bool if the column does not allow NULL values, or NULL otherwise). (Bug #25509312, Bug #84851)
  • MySQL data could not be refreshed or edited directly in an Excel worksheet by different users or from different computers, which reduced the ability to share data-editing sessions among users or between computers. This fix alters the way connection information is stored by migrating the connection details for related import and edit-data operations from the user settings file to the XML parts of a workbook when the workbook is opened, and if the workbook supports XML parts and the connection information related to that workbook is found in the user settings file. (Bug #25509085, Bug #73314)
  • User-selected data types that replaced the detected values of a column were lost when the First Row Contains Column Names check box was selected or deselected in preparation for an export-data operation. This fix retains the selected value when the data type is set manually to override the automatically detected type and the check box is selected or deselected. It further adds a new action to reset the column back to automatic detection. (Bug #25492772, Bug #84802)
  • A portion of the preview area that should be displayed during import, export, and append data operations was concealed by other fields. (Bug #25325457, Bug #84351)
  • Attempting to refresh MySQL data in an Excel worksheet while the MySQL for Excel task pane was closed generated an error. (Bug #25301136, Bug #84291)
  • Edit-data operations in which the SQL query used optimistic updates, and the data contained empty strings, produced errors during the commit to MySQL. Enhanced mapping of character sets and clearer error-message text were added to identify the use of client character sets that are unsupported in MySQL. (Bug #25236221, Bug #76287)
  • A mismatch between the current schema and the current connection caused the refresh action to fail when a worksheet with imported data was created as an Excel table, saved, closed, and then reopened. (Bug #25233309, Bug #84154)
  • Inactive connections and unsaved passwords caused the refresh action to generate errors for worksheets with imported MySQL data in Excel tables. (Bug #25227226, Bug #84136)
  • Excel worksheets that had currency values with comma separators produced errors when the data was exported to a MySQL table. (Bug #25214984, Bug #84049)
  • MySQL connection passwords were not saved to the secure password vault and produced a password request every time an existing connection was opened. (Bug #25108196, Bug #83855)
  • Excel cells containing empty strings, which are not actually blank, generated errors with export, append, or edit data operations. With this fix, an empty string is now equivalent to a blank cell. (Bug #24431935, Bug #82497)
  • Although the Refresh All action in the Data ribbon refreshed all MySQL connections, it did not refresh the other connections associated with a workbook when the MySQL for Excel add-in was enabled. (Bug #23605635, Bug #81901)
  • Clearing numeric parameter values within a stored procedure, or setting any of the initial values to NULL, during an Import MySQL Data operation emitted an error. (Bug #23281495, Bug #81417)
  • Type TinyInt was mapped as type Bool when data was imported to Excel from MySQL. (Bug #23022665, Bug #80880)
  • MySQL columns of type DATE and DATETIME produced errors during import-data operations. This fix improves the way MySQL for Excel handles these types for all operations: import data, export data, append data, and edit data. (Bug #22627266, Bug #80139)
  • Excel data of type Date could not be exported to a MySQL table. (Bug #22585674, Bug #80079)
  • Tables and views imported to Excel without the Include Column Names as Headers option first being selected omitted the expected default column names (Column1, Column2, and so on). (Bug #22373140)
  • Creating a new schema with the binary – binary collation produced an error. (Bug #22371690)
  • Saved edit-data sessions could not be restored after a workbook was closed and then reopened. (Bug #22138958)
  • Connection sharing between MySQL for Excel and MySQL Workbench resulted in some incorrect connection information being passed to the MySQL Server Connection dialog. (Bug #22079779)
  • The default schema of the current MySQL connection changed unexpectedly when a table in a different schema was edited. (Bug #22074426)
  • With a cursor positioned at the bottom of a worksheet and with the Add Summary Fields check box selected, the import-data operation failed despite having enough space to fill the cells. (Bug #19652840)

Quick links:

Enjoy and thanks for the support!