MySQL Connector/C++ 8.0.14 has been released

Dear MySQL users,

MySQL Connector/C++ 8.0.14 is a new release version of the MySQL Connector/C++ 8.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++ and plain C applications using X DevAPI and X DevAPI for C. It also supports the legacy API of Connector/C++ 1.1 based on JDBC4.

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

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

See also “X DevAPI Reference” at

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

and “X DevAPI for C 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/

For general documentation about how to get started using MySQL as a document store, see

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

To download MySQL Connector/C++ 8.0.14, see the “Generally Available (GA) Releases” tab at

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

Enjoy and thanks for the support!

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

MySQL Shell 8.0.14 for MySQL Server 8.0 and 5.7 has been released

Dear MySQL users,

MySQL Shell 8.0.14 is a maintenance release of MySQL Shell 8.0 Series
(a component of the MySQL Server). The MySQL Shell is provided under Oracle’s dual-license.

MySQL Shell 8.0 is highly recommended for use with MySQL Server 8.0 and 5.7. Please upgrade to MySQL Shell 8.0.14.

MySQL Shell is an interactive JavaScript, Python and SQL console interface, supporting development and administration for the MySQL Server. It provides APIs implemented in JavaScript and Python that enable you to work with MySQL InnoDB cluster and use MySQL as a document store.

The AdminAPI enables you to work with MySQL InnoDB cluster, providing an integrated solution for high availability and scalability using InnoDB based MySQL databases, without requiring advanced MySQL expertise. For more information about how to configure and work with MySQL InnoDB cluster see

https://dev.mysql.com/doc/refman/en/mysql-innodb-cluster-userguide.html

The X DevAPI enables you to create “schema-less” JSON document collections and perform Create, Update, Read, Delete (CRUD) operations on those collections from your favorite scripting language.
For more information about how to use MySQL Shell and the MySQL Document Store support see

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

For more information about the X DevAPI see

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

If you want to write applications that use the the CRUD based X DevAPI you can also use the latest MySQL Connectors for your language of choice. For more information about Connectors see

https://dev.mysql.com/doc/index-connectors.html

For more information on the APIs provided with MySQL Shell see

https://dev.mysql.com/doc/dev/mysqlsh-api-javascript/8.0/

and

https://dev.mysql.com/doc/dev/mysqlsh-api-python/8.0/

Using MySQL Shell’s SQL mode you can communicate with servers using the legacy MySQL protocol. Additionally, MySQL Shell provides partial compatibility with the mysql client by supporting many of the same command line options.

For full documentation on MySQL Server, MySQL Shell and related topics,
see

https://dev.mysql.com/doc/mysql-shell/8.0/en/

For more information about how to download MySQL Shell 8.0.14, see the “Generally Available (GA) Releases” tab at

http://dev.mysql.com/downloads/shell/

We welcome and appreciate your feedback and bug reports, see

http://bugs.mysql.com/

Enjoy and thanks for the support!

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

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

MySQL Connector/J 8.0.14 has been released

Dear MySQL users,

MySQL Connector/J Version 8.0.14 is the GA release of the 8.0
branch of MySQL Connector/J. It is suitable for use with MySQL Server
versions 8.0, 5.7, 5.6, and 5.5. It supports the Java Database
Connectivity (JDBC) 4.2 API, and implements the X DevAPI.

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-14.html

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.14 GA, see the “Generally Available
(GA) Releases” tab at http://dev.mysql.com/downloads/connector/j/
Enjoy!

Changes in MySQL Connector/J 8.0.14 (2019-01-21, General
Availability)

Functionality Added or Changed

  • Important Change: For MySQL Server 8.0.14 and later,
    5.7.25 and later, 5.6.43 and later, and 5.5.63 and later,
    minimal permissions on named pipes are granted to clients
    that use them to connect to the server. Connector/J,
    however, can only use named pipes when granted full
    access on them. As a workaround, the MySQL Server that
    Connector/J wants to connect to must be started with the
    system variable named_pipe_full_access_group; see the
    description for the system variable for more details.
    (Bug #28971500)
  • X DevAPI: getDefaultSchema() now returns null when no
    default schema has been set for the Session.
  • Connector/J now has a new property for building from
    source, com.mysql.cj.build.verbose, which controls the
    verbosity of the build process’ output. Its default value
    is false, which makes the output considerably shorter
    comparing with earlier versions of Connector/J.
    (Bug #28970166)
  • The method ResultSet.getBoolean() now returns FALSE when
    the designated column is of data type CHAR or VARCHAR and
    contains an “N” or “n”. This makes Connector/J 8.0
    behaves like Connector/J 5.1 when it comes to converting
    strings to booleans. (Bug #28706219, Bug #92574)
  • Connector/J is now capable of reading and, if needed,
    ignoring any initial notice packets sent by X Plugin
    before an X Protocol connection is established.

Bugs Fixed

  • X DevAPI: Connector/J returned a NullPointerException
    when an application tried to establish an XProtocol
    connection using a Windows named pipe, which is not
    supported. With this fix, an XProtoclException is
    returned instead.
    This fix also makes sure that instead of a
    NullPointerException, a proper exception is thrown when
    an application tries to establish a Classic MySQL
    Protocol connection with a named pipe, but the named pipe
    is not specified at connection or it cannot be found on
    the specified path. (Bug #28606708)
  • X DevAPI: Adding an empty document with executeAsync()
    resulted in an ERROR 5013 (Missing row data for Insert).
    With this fix, no error or warning is returned in the
    case. (Bug #23045642)
  • Collection.count() returned a wrong error message when
    the collection did not exist. (Bug #28924137)
  • The source code of Connector/J contains non-ASCII
    characters, which might cause encoding issues during
    compilation if the system did not also use a UTF-8
    locale. With this fix, the build script now handles
    non-ASCII characters well regardless of the system
    locale. (Bug #28894344)
  • A memory leak occurred if Connector/J was loaded via the
    bootstrap class path instead of the main application
    classpath. It was because
    AbandonedConnectionCleanupThread failed to initialize its
    internal thread in that case, so that references for
    closed connections were not cleaned up, and their number
    kept growing. This fix repairs the clean up process for
    closed connections and also makes the process thread
    safe. (Bug #28747636, Bug #92508)
  • * clearInputStream() returned a NullPointerException when
    the mysqlSocket, mysqlInput, or mysqlOutput object it
    tried to retrieve was null. With this fix, an IOExcpetion
    is thrown instead in the situation. Thanks to Henning
    Schmiedehausen for contributing to the fix.
    (Bug #28731795, Bug #92625)
  • Updating a result set returned by a server-side prepared
    statement with SELECT … FOR UPDATE
    (http://dev.mysql.com/doc/refman/8.0/en/select.html)
    resulted in an SQLException. (Bug #28692243, Bug #92536)
  • When the connection property zeroDateTimeBehavior was set
    to CONVERT_TO_NULL, Connector/J converted a TIME
    (http://dev.mysql.com/doc/refman/8.0/en/time.html) type
    value of 00:00:00 to null. With this fix, it returns a
    java.sql.Time instance of zero hours, minutes, and
    seconds, as expected. (Bug #28101003, Bug #91065)
  • When using server-side prepared statements and working
    with a table with multicolumn primary key, an updateRow()
    call failed with a NullPointerException or a
    SQLException. (Bug #25650514)
  • When using server-side prepared statements, a
    refreshRow() call after an updateRow() call failed with a
    SQLException. (Bug #25650482)
  • changeUser() failed to change or reauthenticate a user
    when all of the following were true: (a) connection to
    the server was by SSL; (b) the caching_sha2 or
    sha256_password authentication plugin was used for the
    user; and (c) the user password contained Unicode
    characters. (Bug #25642226)

On Behalf of Oracle/MySQL Release Engineering Team,
Daniel Horecki

MySQL Connector/ODBC 8.0.14 has been released

Dear MySQL users,

MySQL Connector/ODBC 8.0.14 is a new version in the MySQL Connector/ODBC 8.0 series,
the ODBC driver for the MySQL Server.

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 server version from 5.5.

This release of the MySQL ODBC driver is 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).

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

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

For information on installing, please see the documentation at

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

Changes in MySQL Connector/ODBC 8.0.14 (2019-01-21, General Availability)

Functionality Added or Changed

* A new ENABLE_LOCAL_INFILE connection option was added to
the connection string, DSN, and GUI. Disabled by default,
set ENABLE_LOCAL_INFILE=1 to enable LOAD DATA operations.
This toggles the MYSQL_OPT_LOCAL_INFILE mysql_options()
option.
The connection string overrides the DSN value if both are
set.

* MySQL Connector/ODBC is now compatible with MSVC 2017,
while retaining compatibility with MSVC 2015:

+ Previously, Connector/ODBC binary distributions were
compatible with projects built using MSVC 2015.
Binary distributions now are compatible with
projects built using MSVC 2017 or 2015.

+ Previously, Connector/ODBC source distributions
could be built using MSVC 2015. Source distributions
now can be built using MSVC 2017 or 2015.

+ Previously, the MSI installer accepted the Visual
C++ Redistributable for Visual Studio 2015. The MSI
installer now accepts the Visual C++ Redistributable
for Visual Studio 2017 or 2015.

* Two informative text files were added: INFO_BIN contains
information about the build environment used to produce
the distribution, and INFO_SRC provides information about
the product version and the source repository from which
the distribution was produced. Source distributions
include the INFO_SRC file only.

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

MySQL Connector/Python 8.0.14 has been released

Dear MySQL users,

MySQL Connector/Python 8.0.14 is the latest GA release version of the
MySQL Connector Python 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.

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 at least MySQL Server version 8.0
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/8.0/en/document-store.html.

To download MySQL Connector/Python 8.0.14, see the “General Available
(GA) releases” tab at http://dev.mysql.com/downloads/connector/python/

Enjoy!


Changes in MySQL Connector/Python 8.0.14 (2019-01-21, General
Availability)

Functionality Added or Changed


     * A default schema name can now be defined from the
       connection string. Statements executed using the session are
       executed against this default schema if no other schema is
       specified. An example connection string:
       mysqlx://username:password@localhost:33160/myschema?ssl-mode=enabled
       where myschema becomes the default schema name. An error is
       emitted if the schema does not exist.  In addition, a new
       get_default_schema() method was added to retrieve this default
       schema's name. It returns the string "NONE" if a default schema
       name was not provided.

     * The count() method's error message was unclear when the
       table or collection was missing.

Bugs Fixed

     * On Windows, Python 2.7 binaries only contain the pure
       Python (and not the C extension) implementation yet the MSI
       installer still had the VC 2015 pre-requisite. (Bug #28992304)

     * Improved error handling for classic protocol connections
       using the X protocol port. (Bug #28962337)

     * Attempting to connect to a default schema with
       insufficient privileges would yield a "does not exist" error
       instead of "access denied." (Bug #28942938)

     * Improved error handling for connection strings that
       contain invalid schema names, such as an empty string.
       (Bug #28933922)

     * On Mac OS X, the requirements section was missing from
       the bundled README files. (Bug #28744076)

     * The Debian package descriptions were improved.
       (Bug #28737774)

     * The connector assumed that all values were expressions,
       which could lead to errors. The expr() method is now required to
       designate values as expressions. (Bug #28646344, Bug #92416)

     * With Python 2.7 and use_pure=False, unicode characters in
       table object operations would cause an unexpected halt.
       (Bug #28280321)

     * With "pure_python=False" set, mysql.connector would still
       use the Python implementation if the C extension was not
       available. (Bug #27794178)

     * A new ssl_verify_identity connection option was added to
       verify the server name against the server certificate's common
       name (CN) and subject alternative names (SANs).  Previously, only
       the C extension implementation performed this verification by
       default. This functionality exists to help prevent
       man-in-the-middle type attacks. (Bug #27434751)

     * An unexpected notice from the server could result in an
       error.

Enjoy and thanks for the support!

On behalf of the MySQL Release Team,
Nawaz Nazeer Ahamed

MySQL Connector/Node.js 8.0.14 has been released

Dear MySQL users,

MySQL Connector/Node.js is a new Node.js driver for use with the X
DevAPI. This release, v8.0.14, is a maintenance 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/.

Please note that the X DevAPI requires at least MySQL Server version
8.0 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/8.0/en/document-store.html.

Changes in MySQL Connector/Node.js 8.0.14 (2019-01-21, General Availability)

Functionality Added or Changed

* Removed deprecation notices from the count() methods.

* Setting the default schema via the connection now sets
the default schema on the server; meaning, subsequent
queries executed using session.sql() do not need to
specify the schema.

Bugs Fixed

* Setting the default schema with the connection URI using
a schema name that contained special characters (that
would need to be percent-encoded) would result in the
percent-encoded name being used instead of the original
one (e.g. “%25%26%5E*%5E_” instead of “%&^*^_”). (Bug
#28990682)

* An error is once again thrown if sslOption’s ‘ca’ is
different than the certificate authority used to sign the
server certificate, or if the server certificate has been
revoked. (Bug #28977649)

* Attempting to use false-like values such as 0, false,
null, and undefined would emit errors when updating or
inserting documents in a collection or rows in a table.
Additionally, now boolean values become numeric values
(true=1, false=0) while null and undefined are converted
to MySQL’s NULL type. (Bug #28970727, Bug #93315)

* Collection.existsInDatabase() always returned true if any
other collection existed in the database. (Bug #28745240)

* Configuring a default schema from the connection string
would create the schema if it did not exist. Now, an
“Unknown database” error is thrown instead.

* An unexpected notice could result in an unexpected halt
of the client.

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

MySQL Connector/NET 8.0.13 has been released

Dear MySQL users,

MySQL Connector/NET 8.0.13 is the first version to support
Entity Framework Core 2.1 and the third general availability release
of MySQL Connector/NET to add support for the new X DevAPI,which
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.

NuGet packages provide functionality at a project level. To get the
full set of features available in Connector/NET such as availability
in the GAC, integration with Visual Studio’s Entity Framework Designer
and integration with MySQL for Visual Studio, installation through
the MySQL Installer or the stand-alone MSI is required.

For general documentation about how to get started using MySQL
as a document store, see
http://dev.mysql.com/doc/refman/8.0/en/document-store.html.

To download MySQL Connector/NET 8.0.13, see
http://dev.mysql.com/downloads/connector/net/

Installation instructions can be found at
https://dev.mysql.com/doc/connector-net/en/connector-net-installation.html


Changes in MySQL Connector/NET 8.0.13 (2018-10-22, General Availability) 

     * Important Changes

     * Functionality Added or Changed

     * Bugs Fixed

Important Changes


     * The default value for the SslMode connection option now
       differs based on the protocol used to make the
       connection. The Preferred mode has been reintroduced in
       this release (see Options for Both Classic MySQL Protocol
       and X Protocol
       (http://dev.mysql.com/doc/connector-net/en/connector-net-8-0-connection-options.html#connector-net-8-0-connection-options-classic-xprotocol).
       To summarize the default  Sslmode values in the Connector/NET 8.0 (and 7.0) release series:

       Connector/NET 8.0.13: Preferred mode is the default for
       classic MySQL protocol connections only. Required mode is
       the default for X Protocol connections only (Preferred
       mode is not available for use with X Protocol).

       Connector/NET 8.0.8 to 8.0.12: Preferred mode is not
       supported for any connections. Required mode is the
       default for both classic MySQL protocol and X Protocol
       connections.

       Connector/NET 7.0.0 to 7.0.7: Preferred mode is the
       default for both classic MySQL protocol and X Protocol
       connections. (Bug #28687769)


Functionality Added or Changed

     * Document Store: An incremental improvement was made to
       the performance of session creation with a connection
       string. (Bug #28343655)

     * Support for EF Core 2.1 was added to Connector/NET 8.0.13
       and support for EF Core 2.0 was discontinued in the same
       connector version. Other versions of Connector/NET
       continue to support EF Core 2.0 (see Entity Framework
       Core Support
       (http://dev.mysql.com/doc/connector-net/en/connector-net-entityframework-core.html).

     * The ConnectionTimeout connection option and property were
       reimplemented as the Connect-Timeout option (and the
       ConnectTimeout property) for X Protocol operations. Some
       aspects of the timeout behavior were changed (see Options
       for X Protocol Only
       (http://dev.mysql.com/doc/connector-net/en/connector-net-8-0-connection-options.html#connector-net-8-0-connection-options-xprotocol).
       The new ConnectTimeout property was added to the
       MySqlX.XDevAPI.MySqlXConnectionStringBuilder class and
       the existing ConnectionTimeout property was removed.

       No modifications were made to the existing implementation
       of the ConnectionTimeout option (or property) for classic
       MySQL operations.

     * Connector/NET now provides connection pooling for
       applications using the X Protocol. The implementation
       includes the new static MySQLX.GetClient method that
       takes two parameters: connectionData (connection string
       or URI) and connectionOptions (JSON-formatted string or
       anonymous object containing the pooling options).
       

       Method overloading enables the following type combinations:
        MySQLX.GetClient(Object, Object)
        MySQLX.GetClient(Object, String)
        MySQLX.GetClient(String, Object)
        MySQLX.GetClient(String, String)

       GetClient returns the new Client object, which retrieves
       an existing and currently unused network connection from
       the pool, resets it, and uses it. Closing a session marks
       the underlying connection as unused and returns it to the
       pool.

       Connection options are configured as follows:
       // Connection options of type String
        Client client = MySQLX.GetClient(ConnectionData, "{ \"pooling\": { \"maxSize\":  5, \"queueTimeout\": 5000 } }");

      // Connection options of type Object (anonymous object)
       Client client = MySQLX.GetClient(ConnectionData, new { pooling = new {maxSize = 5, queueTimeout = 5000 } });

       The new keyword must be used twice when the connection
       options are configured using an anonymous object.
       Connection options are: enabled, maxSize, maxIdleTime,
       and queueTimeout. For more information, see Connection
       and Session Concepts
       (http://dev.mysql.com/doc/x-devapi-userguide/en/devapi-connection-concepts.html).

Bugs Fixed

     * Document Store: Connector-side validation performed when
       the Collection.CreateIndex method was called duplicated
       some of the checks already made by the server. The
       connector now only validates that the indexDefinition
       value passed to the method is a valid JSON document with
       the correct structure. (Bug #28343828)

     * EF Core: An invalid syntax error was generated when a new
       property (defined as numeric, has a default value, and is
       not a primary key) was added to an entity that already
       contained a primary-key column with the AUTO_INCREMENT
       attribute. This fix validates that the entity property
       (column) is a primary key first before adding the
       attribute. (Bug #28293927)

     * Document Store: A mixed alphanumeric value such as
       "1address" when used with the Set and Unset methods
       caused the operations to throw an exception. This fix
       resolves the way mixed values are converted into tokens
       to generate only one token as an identifier. (Bug
       #28094094)

     * EF Core: The implementation of some methods required to
       scaffold an existing database were incomplete. (Bug
       #27898343, Bug #90368)

     * Attempts to create a new foreign key from within an
       application resulted in an exception when the key was
       generated by a server in the MySQL 8.0 release series.
       (Bug #27715069)

     * A variable of type POINT when used properly within an
       application targeting MySQL 8.0 generated an SQL syntax
       error. (Bug #27715007)

     * The case-sensitive lookup of field ordinals was
       initialized using case-insensitive comparison logic. This
       fix removes the original case-sensitive lookup. (Bug
       #27285641, Bug #88950)

     * The MySql.Data.Types.MySqlGeometry constructor called
       with an array of bytes representing an empty geometry
       collection generated an ArgumentOutOfRangeException
       exception, rather than creating the type as expected.
       Thanks to Peet Whittaker for the patch. (Bug #26421346,
       Bug #86974)

     * Slow connections made to MySQL were improved by reducing
       the frequency and scope of operating system details
       required by the server to establish and maintain a
       connection. (Bug #22580399, Bug #80030)


On Behalf of MySQL Release Engineering team,
Surabhi Bhat

MySQL Connector/C++ 8.0.13 has been released

Dear MySQL users,

MySQL Connector/C++ 8.0.13 is a new release version of the MySQL
Connector/C++ 8.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++ and plain C applications using X DevAPI and X DevAPI for C. It also supports the legacy API of Connector/C++ 1.1 based on JDBC4.

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/

See also “X DevAPI Reference” at

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

and “X DevAPI for C 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/

For general documentation about how to get started using MySQL
as a document store, see

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

To download MySQL Connector/C++ 8.0.13, see the “Generally Available (GA)
Releases” tab at

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



Changes in MySQL Connector/C++ 8.0.13 (2018-10-22, General Availability)

* Character Set Support

* Packaging Notes

* X DevAPI Notes

* Functionality Added or Changed

* Bugs Fixed

Character Set Support


* For connections to the server made using the legacy JDBC
API (that is, not made using X DevAPI or X DevAPI for C),
the default connection character set is now utf8mb4
rather than utf8. Connections to the server made using X
DevAPI or X DevAPI for C continue to use the connection
character set determined by the server. (Bug #28204677)

Packaging Notes


* Connector/C++ 32-bit MSI packages are now available for
Windows. These 32-bit builds enable use of the legacy
JDBC connector.

* Connector/C++ compressed tar file packages are now
available for Solaris.
It is also possible to build Connector/C++ from source on
Solaris. For platform-specific build notes, see Building
Connector/C++ Applications: Platform-Specific Considerations
(http://dev.mysql.com/doc/connector-cpp/8.0/en/connector-cpp-apps-platform-considerations.html).


X DevAPI Notes


* Connector/C++ now provides connection pooling for
applications using X Protocol. This capability is based
on client objects, a new type of X DevAPI object. A
client can be used to create sessions, which take
connections from a pool managed by that client. For a
complete description, see Connecting to a Single MySQL
Server Using Connection Pooling
(http://dev.mysql.com/doc/x-devapi-userguide/en/connecting-connection-pool.html).
X DevAPI example:
using namespace mysqlx;

Client cli("user:password@host_name/db_name", ClientOption::POOL_MAX_SIZE, 7);
Session sess = cli.getSession();

// use sess as before

cli.close();  // close session sess

X DevAPI for C example:
char error_buf[255];
int  error_code;

mysqlx_client_t *cli
= mysqlx_get_client_from_url(
"user:password@host_name/db_name", "{ \"maxSize\": 7 }", error_buf, &error_code);
mysqlx_session_t *sess = mysqlx_get_session_from_client(cli);

// use sess as before

mysqlx_close_client(cli);  // close session sess


* For X DevAPI, a new connect-timeout option can be
specified in connection strings or URIs to indicate a
connection timeout in milliseconds. The
SessionSettings::Options object supports a new
CONNECT_TIMEOUT option.
For X DevAPI for C, the mysqlx_opt_type_t constant is
MYSQLX_OPT_CONNECT_TIMEOUT together with the
OPT_CONNECT_TIMEOUT() macro.
If no timeout option is specified, the default is 10000
(10 seconds). A value of 0 disables the timeout. The
following examples set the connection timeout to 10
milliseconds:
X DevAPI examples:
Session sess("user@host/db?connect-timoeut=10");

Session sess(..., SessionOption::CONNECT_TIMEOUT, 10, ...);

Session sess(
...,
SessionOption::CONNECT_TIMEOUT, std::chrono::milliseconds(10),
...
);

X DevAPI for C example:
mysqlx_session_options_t *opt = mysqlx_session_options_new();
mysqlx_session_option_set(opt, ..., OPT_CONNECT_TIMEOUT(10), ...);

Functionality Added or Changed


* JSON: Connector/C++ now uses RapidJSON for improved
performance of operations that involve parsing JSON
strings. There are no user-visible API changes for X
DevAPI or X DevAPI for C.

Bugs Fixed


* On SLES 15, Connector/C++ installation failed if
libmysqlcppcon7 was already installed. (Bug #28658120)

* Applications that were statically linked to the legacy
JDBC connector could encounter a read access violation at
exit time due to nondeterministic global destruction
order. (Bug #28525266, Bug #91820)

* Configuring with -DCMAKE_BUILD_TYPE=Release did not work
on Linux. (Bug #28045274)

* Field references in .having() expressions could be
interpreted incorrectly and produce errors.
(Bug #26310713)


Enjoy and thanks for the support!

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

MySQL Connector/Node.js 8.0.13 has been released

Dear MySQL users,

MySQL Connector/Node.js is a new Node.js driver for use with the X
DevAPI. This release, v8.0.13, is a maintenance 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/.

Please note that the X DevAPI requires at least MySQL Server version
8.0 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/8.0/en/document-store.html.

Changes in MySQL Connector/Node.js 8.0.13 (2018-10-22, General availability)

Functionality Added or Changed

* To go with the existing asynchronous
mysqlx.getSession(conn_str) method, a new synchronous
mysqlx.getClient(conn_str, options) method was added that
creates a connection pool handler that provides an
asynchronous getSession() method to create and retrieve
connections from the pool. The collection pooling options
are:

+ enabled: enables or disables connection pooling;
boolean and defaults to true.

+ maxSize: maximum number of connections available in
the pool; positive integer and defaults to 25.

+ maxIdleTime: maximum number of milliseconds a
connection can be idle in the queue before being
closed; integer >= 0 and defaults to 0 (infinite).

+ queueTimeout: maximum number of milliseconds a
request will wait for a connection to become
available; integer >= 0 and defaults to 0
(infinite).
This is different than connectTimeout that’s used
for non-pooling. In a pooling scenario, there might
already be connections in the pool and queueTimeout
controls how long to wait for a connection in the
pool.
Example usage:
var mysqlx = require(‘@mysql/xdevapi’)
var client = mysqlx.getClient(
{ user: ‘root’, host: ‘localhost’, port: 33060 },
{ pooling: { enabled: true, maxIdleTime: 5000, maxSize: 25, queueTimeout: 20000 } }
);

client.getSession()
.then(session => {
console.log(session.inspect())
return session.close() // the connection becomes idle in the client pool
})
.then(() => {
return client.getSession()
})
.then(session => {
console.log(session.inspect())
return client.close() // closes all connections and destroys the pool
})

Closing a session attached to the pool makes the
connection available in the pool for subsequent
getSession() calls, while closing (destroying) the pool
effectively closes all server connections.

* Added a connection timeout query parameter. This defines
the length of time (milliseconds) the client waits for a
MySQL server to become available in the given network
addresses. It was added to both the mysqlx.getSession()
(non-pooling sessions) and mysqlx.getClient() (pooling
sessions) interfaces. This option defaults to 10000 (10
seconds). The value 0 disables the timeout so the client
will wait until the underlying socket (platform
dependent) times out.
Similar to other option formatting rules, this option
defined as connection-timeout (kebab-case) for URI
definitions and connectionTimeout (camelCase) for plain
JavaScript configuration objects.
Example usage:
const mysqlx = require(‘@mysql/xdevapi’);
var client = mysqlx.getClient(‘root@localhost?connect-timeout=5000’)
client.getSession()
.catch(err => {
console.log(err.message) // “Connection attempt to the server was aborted. Timeout of 5000 ms was exceeded.”
})

// Or

const mysqlx = require(‘@mysql/xdevapi’);
var client = mysqlx.getClient(‘mysqlx://root:passwd@[localhost:33060, 127.0.0.1:33060]?connect-timeout=5000’)
client.getSession()
.catch(err => {
// connection could not be established after 10 seconds (5 seconds for each server)
console.log(err.message); // All server connection attempts we re aborted. Timeout of 5000 ms was exceeded for each selected server.
});

In a multi-host scenario, the connect-timeout value
applies to each individual host.

Bugs Fixed

* Improved the handling of X Protocol global notices by
properly logging and then ignoring non-fatal errors, and
making the connection unusable for subsequent operations
in the case of a fatal error. (Bug #28653781)

* Calling getCollationName() on non-textual fields, such as
INT, threw the following error “TypeError: Cannot read
property ‘collation’ of undefined”. (Bug #28608923)

* The fields() method did not function with valid
expressions generated by the expr() method. (Bug
#28409639)

* The returned Session.inspect() object now includes the
‘user’ property in addition to the ‘dbUser’ property but
containing the same value. (Bug #28362115)

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

MySQL Connector/ODBC 8.0.13 has been released

Dear MySQL users,

MySQL Connector/ODBC 8.0.13 is a new version in the MySQL Connector/ODBC 8.0 series, the ODBC driver for the MySQL Server.

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 server version from 5.5.

This release of the MySQL ODBC driver is 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).

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

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

For information on installing, please see the documentation at

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

Changes in MySQL Connector/ODBC 8.0.13 (2018-10-22, General Availability)

Functionality Added or Changed

  • Added dynamic libmysql linking support via the -DMYSQLCLIENT_STATIC_LINKING:BOOL=TRUE|FALSE option; defaults to FALSE to enable dynamic linking.

Bugs Fixed

  • Fixed column metadata handling with Microsoft Access.
    (Bug #28670725, Bug #91856)
  • The following obsolete options were removed: NO_SCHEMA (use NO_CATALOG instead), DISABLE_SSL_DEFAULT (use SSLMODE instead), and SSL_ENFORCE (use SSLMODE instead). (Bug #28407520)
  • The ODBC Driver returned 0 for the SQL_MAX_SCHEMA_NAME_LEN attribute, and now returns 64 as the maximum length for a MySQL schema name.
    (Bug #28385722)
  • Because the MySQL ODBC driver ignored the SQL_RD_OFF value for the SQL_ATTR_RETRIEVE_DATA attribute, it incorrectly kept writing into the data buffers. This led to write access violation errors when data was written into the buffer when the user application explicitly requested not to write there.
    (Bug #28098219, Bug #91060)

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