MySQL for Excel 1.3.8 has been released

Dear MySQL users,

The MySQL Windows Experience Team is proud to announce the release of MySQL for Excel version 1.3.8. 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 (400 MB) which includes a complete set of MySQL products with
  their binaries included in the download.

– Web (18 MB – a 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.8 (2019-06-10, General Availability)

     * Functionality Added or Changed

     * Bugs Fixed

Functionality Added or Changed

     * Previously, 1000 (first rows of a MySQL table) was the
       value limit for previewing a small amount of data in
       Excel. However, setting the value to 300 or greater
       generated an exception and prevented additional editing
       operations. The upper threshold now is 100, instead of
       1000 (see Advanced Import Data Options, General Tab
       (https://dev.mysql.com/doc/mysql-for-excel/en/mysql-for-e
xcel-import-options-advanced.html#mysql-for-excel-import-
options-advanced-general)). (Bug #29745518)

     * A new global option, Tolerance for FLOAT and DOUBLE
       comparisons in WHERE clause, provides a way to edit data
       of these types that enables proper row-matching in the
       database when it is used together with optimistic updates
       (see Global Options, Edit Sessions Tab
       (https://dev.mysql.com/doc/mysql-for-excel/en/mysql-for-e
xcel-config-options.html#mysql-for-excel-global-options-e
dit-sessions)). (Bug #29179195, Bug #93824)

     * The Import Data operation adds digits to floating-point
       numbers. For example, instead of rendering a value such
       as 5.3 precisely from the database, the operation
       displays 5.0000019073486 after importing the data. This
       behavior affects FLOAT and DOUBLE data types, which
       adhere to the IEEE-754 standard and are stored as
       approximate values.
       A new option now provides a way to import floating-point
       numbers using the DECIMAL data type, which then stores
       and displays the exact value from the database (see
       Advanced Import Data Options, Formatting Tab
       (https://dev.mysql.com/doc/mysql-for-excel/en/mysql-for-e
xcel-import-options-advanced.html#mysql-for-excel-import-
advanced-format)). (Bug #26008777)

     * Support was added for encrypted connections in the form
       of SSL certificates and SSH tunneling, without the
       requirement of having intermediate proxy software to
       create the tunnel. Encrypted connections can be
       configured from the MySQL for Excel add-in directly or
       they can be configured with MySQL Workbench and then used
       to open a connection from the add-in. (Bug #18550080)

     * The Import Data operation for stored procedures now
       enables the selection of individual columns to be
       imported from each returned result set, which is similar
       to the way imported column data already works for table
       and view data. (Bug #16239029)

Bugs Fixed

     * The Export and Append Data actions for a cell with data
       in a worksheet were transferred unexpectedly to a cell
       without data on a second worksheet when the active focus
       was shifted to the second worksheet. (Bug #29839647)

     * A lack of contrast between onscreen message data and the
       background obscured the connection information when some
       themes (such as Dark Gray) were set on the host. This fix
       extends the selected theme colors to the MySQL for Excel
       add-in for the following versions of Excel: 2007, 2010,
       2013, 2016, 365, and 2019. (Bug #29826900)

     * When mappings were stored for Append Data operations, the
       add-in did not check for blank and duplicate stored
       mapping names. Now, validation ensures that all names are
       unique and that existing names are not overwritten
       without permission. (Bug #29826762)

     * Microsoft Excel prompted users to save workbooks that
       were unchanged. This fix alters the way metadata for
       connection information (used by Import and Edit Data
       operations) is created and stored, and ignores unrelated
       actions. (Bug #29625731)

     * When schema information was retrieved using a stored
       procedure, the operation was unable to find the
       mysql.proc system table. The operation now retrieves
       schema information from INFORMATION_SCHEMA tables.
       (Bug#29215137, Bug #93814)

     * With the option to create Excel relationships for
       imported tables enabled, an attempt to import a table
       (with related tables) generated an exception when the
       tables had circular references. This fix modifies the way
       relationships are created for Import Data operations for
       multiple tables, such that relationships among tables
       that could create a circular reference are not added to
       the Excel data model. (Bug #29050558)

     * The Edit Data operation returned an error message
       intermittently (value not suitable to be converted to a
       DateTime data type), even for tables without a DATETIME
       column. This fix updates the library used for internal
       connections to MySQL 8.0 server instances and the
       caching_sha2_password plugin. In addition, the updated
       library resolves an error in which fetched schema
       information for columns returns the rows in alphabetical
       order, instead of ordinal order. (Bug #29030866,
       Bug#93501)

     * Data imported to a worksheet could not be refreshed if
       the worksheet was renamed after the import operation. The
       add-in now inspects the connection information of
       imported tables to determine whether the associated
       worksheet name changed, and if so, it updates the
       connection metadata. Also, it removes the connection
       information for missing or deleted worksheets.
       (Bug#27441407, Bug #89387)

     * After editing, committing, and then refreshing the data
       from the database, subsequent commits were not recognized
       by the Edit Data operation. (Bug #27365464, Bug #87642)

     * An error was generated when an Edit Data operation
       involved changing the value of a date or time field. Now
       the value of each date or time field is wrapped with
       single quotes and the edits are saved to the database.
       (Bug #26301455, Bug #86723)

     * When an existing workbook was opened, a second (blank)
       workbook instance was also opened. (Bug #26245818,
       Bug#86633)

     * Some unsupported connection methods were shown as valid
       options to select. (Bug #26025950)

     * The Windows automatic scaling of visual elements did not
       work as expected when the operating system was configured
       to use a DPI value other than 100%. (Bug #23218058,
       Bug#81003)

Quick links:
MySQL for Excel documentation: http://dev.mysql.com/doc/en/mysql-for-excel.html.
Inside MySQL blog (NEW blog home): http://insidemysql.com/
MySQL on Windows blog (OLD blog home): http://blogs.oracle.com/MySQLOnWindows
MySQL for Excel forum: http://forums.mysql.com/list.php?172.
MySQL YouTube channel: http://www.youtube.com/user/MySQLChannel.

Enjoy and thanks for the support!
The MySQL on Windows team at Oracle.

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

Dear MySQL users,

MySQL Shell 8.0.16 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.16.

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.16, 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,
Nawaz Nazeer Ahamed

MySQL Connector/ODBC 8.0.16 has been released

Dear MySQL users,

MySQL Connector/ODBC 8.0.16 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 the latest MySQL server version 8.0.

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

Enjoy and thanks for the support!

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

Changes in MySQL Connector/ODBC 8.0.16 (2019-04-25, General Availability)

Bugs Fixed

* Connector/ODBC 8.0 is now built with OpenSSL 1.0.2R.
Issues fixed in the new OpenSSL version are described at
http://www.openssl.org/news/vulnerabilities.html. (Bug
#29538143)

* An exception was emitted when fetching contents of a
BLOB/TEXT records after executing a statement as a
server-side prepared statement with a bound parameter.
The workaround is not using parameters or specifying
NO_SSPS=1 in the connection string; this allows the
driver to fetch the data. (Bug #29282638, Bug #29512548,
Bug #28790708, Bug #93895, Bug #94545, Bug #92078)

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

MySQL Connector/NET 8.0.16 has been released

Dear MySQL users,

MySQL Connector/NET 8.0.16 is the fourth version to support
Entity Framework Core 2.1 and the sixth 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.

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/NET 8.0.16, 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.16 ( 2019-04-25, General Availability )

* Functionality Added or Changed

* Bugs Fixed

Functionality Added or Changed

* Document Store: Support was added for the -> operator to
be used with JSON document paths in relational
statements. For example:
table.Select().Where("additionalinfo->$.hobbies = 'Reading'");

(Bug #29347028)

* Document Store: The performance for statements that are
executed repeatedly (two or more times) is improved by
using server-side prepared statements for the second and
subsequent executions. This happens internally;
applications need take no action and API behavior should
be the same as previously. For statements that change,
repreparation occurs as needed. Providing different data
values or different OFFSET or LIMIT clause values does
not count as a change. Instead, the new values are passed
to a new invocation of the previously prepared statement.

* Document Store: Connector/NET now supports the ability to
send connection attributes (key-value pairs that
application programs can pass to the server at connect
time). Connector/NET defines a default set of attributes,
which can be disabled or enabled. In addition,
applications can specify attributes to be passed together
with the default attributes. The default behavior is to
send the default attribute set.
The aggregate size of connection attribute data sent by a
client is limited by the value of the
performance_schema_session_connect_attrs_size server
variable. The total size of the data package should be
less than the value of the server variable. For X DevAPI
applications, specify connection attributes as a
connection-attributes parameter in a connection string.
For usage information, 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).
For general information about connection attributes, see
Performance Schema Connection Attribute Tables
(http://dev.mysql.com/doc/refman/8.0/en/performance-schema-connection-attribute-tables.html).

* Document Store: Connector/NET now has improved support
for resetting sessions in connection pools. Returning a
session to the pool drops session-related objects such as
temporary tables, session variables, and transactions,
but the connection remains open and authenticated so that
reauthentication is not required when the session is
reused.

* Connector/NET applications now can use certificates in
PEM format to validate SSL connections in addition to the
native PFX format (see Tutorial: Using SSL with Connector/NET
(http://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-ssl.html)).
PEM support applies to both classic MySQL protocol
and X Protocol connections.

Bugs Fixed

* Document Store: All methods able to execute a statement
were unable to execute the same statement a second time.
Now, the values and binding parameters remain available
after the method is executed and string parameters are no
longer converted to numbers. Both changes enable a
follow-on execution to reuse the previous parameters.
(Bug #29249857, Bug #29304767)

* An exception was generated when the MySqlDbType
enumeration was given an explicit value and then passed
as a parameter to the MySqlCommand.Prepare method. (Bug
#28834253, Bug #92912)

* Validation was added to ensure that when a column is of
type TIME and the value is 00:00:00, it takes the value
instead of setting NULL. (Bug #28383726, Bug #91752)

On Behalf of MySQL Release Engineering Team,
Surabhi Bhat

MySQL Connector/Python 8.0.16 has been released

Dear MySQL users,

MySQL Connector/Python 8.0.16 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.16, see the “General Available
(GA) releases” tab at http://dev.mysql.com/downloads/connector/python/

Enjoy!

Enjoy and thanks for the support!

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

MySQL Connector/Python 8.0.15 has been released

Dear MySQL users,

MySQL Connector/Python 8.0.15 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.15, see the “General Available
(GA) releases” tab at http://dev.mysql.com/downloads/connector/python/

Enjoy!


Changes in MySQL Connector/Python 8.0.15 (2019-02-01, General
Availability)

Bugs Fixed


     * The default value of the allow_local_infile option
       changed from True to False. (Bug #29260128)

Enjoy and thanks for the support!

On behalf of the MySQL Release Team,
Nawaz Nazeer Ahamed

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/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/J 8.0.13 has been released

Dear MySQL users,

Version 8.0.13 is the latest General Availability release of the 8.0
series 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-13.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.13 GA, see the “Generally Available
(GA) Releases” tab at http://dev.mysql.com/downloads/connector/j/

Enjoy!


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


Functionality Added or Changed


* Important Change: Connector/J now requires Protocol
Buffers 3.6.1 as an external library for using X DevAPI and for
building Connector/J from source.  See Connector/J Installation
(http://dev.mysql.com/doc/connector-j/8.0/en/connector-j-installing.html)
on installation requirements for Connector/J.
(Bug #28499094)

* X DevAPI: X DevAPI now provides a connection pooling
feature, which can reduce overhead for applications by allowing
idle connections to be reused. Connection pools are managed by
the new Client objects, from which sessions can be obtained. See
Connecting to a Single MySQL Server Using Connection Pooling in
the X DevAPI User Guide
(http://dev.mysql.com/doc/x-devapi-userguide/en/) for details.

* X DevAPI: A new connection property,
xdevapi.connect-timeout, now defines the timeout (in
milliseconds) for establishing an X-Protocol connection to the
server. Default value is 10000 (10s), and a value of 0 disables
timeout, which makes Connector/J wait for the underlying socket
to time out instead. See Configuration Properties
(http://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-
configuration-properties.html)
for details.

Note that if xdevapi.connect-timeout is not set
explicitly and connectTimeout is, xdevapi.connect-timeout takes
up the value of connectTimeout.

* The connection property useOldUTF8Behavior is no longer
supported. The connection property never had any meaning for
the MySQL Server versions supported by Connector/J 8.0, but
actually corrupted the data when it was used with them.
(Bug #28444461)

* Connector/J now translates the legacy value of
convertToNull for the connection property zeroDateTimeBehavior to
CONVERT_TO_NULL. This allows applications or frameworks that use
the legacy value (for example, NetBeans) to work with Connector/J
8.0. (Bug #28246270, Bug #91421)

* A new connection property, sslMode, has been introduced
to replace the connection properties useSSL, requireSSL, and
verifyServerCertificate, which are now deprecated.  Also, when
not explicitly set, the connection properties xdevapi.ssl-mode,
xdevapi.ssl-truststore, xdevapi.ssl-truststore-password, and
xdevapi.ssl-truststore-type now take up the values of sslMode,
trustCertificateKeyStoreUrl, trustCertificateKeyStorePassword,
and trustCertificateKeyStoreType, respectively. See Connecting
Securely Using SSL
(http://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-using-ssl.html)
and Configuration Properties
(http://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-
configuration-properties.html)
for details.

Note that for ALL server versions, the default setting
of sslMode is PREFERRED, and it is equivalent to the legacy
settings of useSSL=true, requireSSL=false, and
verifyServerCertificate=false, which are different from their
default settings for Connector/J 8.0.12 and earlier in some
situations. Applications that continue to use the deprecated
properties and rely on their old default settings should be
reviewed.  (Bug #27102307)

* The value UTF-8 for the connection property
characterEncoding now maps to the utf8mb4 character set on the
server and, for MySQL Server 5.5.2 and later,
characterEncoding=UTF-8 can now be used to set the connection
character set to utf8mb4 even if character_set_server has been
set to something else on the server. (Before this change, the
server must have character_set_server=utf8mb4 for Connector/J to
use that character set.) Also, if the connection property
connectionCollation is also set and is incompatible with the
value of characterEncoding, characterEncoding will be overridden
with the encoding corresponding to connectionCollation.  See
Using Character Sets and Unicode
(http://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-charsets.html)
for details, including how to use the utf8mb3 character set now
for connection. (Bug #23227334, Bug #81196)


Bugs Fixed


* X DevAPI: Connector/J threw a WrongArgumentException when
it encountered a JSON number with more than ten digits.  This was
due to an error in the JSON parser, which has now been fixed.
(Bug #28594434, Bug #92264)

* X DevAPI: Session.getUri() returned a
NullPointerException when the default value is null for any of
the connection properties contained in the connection URL; and
when Session.getUri() returned a URL, the URL contained a comma
(",") before its first connection property. (Bug #23045604)

* X DevAPI: When handling an invalid JSON document,
Connector/J threw a NullPointerException. With this fix, a
WrongArgumentException is thrown instead in the situation.
(Bug #21914769)

* Setting the connection property characterEncoding to an
encoding that maps to the MySQL character set latin1 or utf8mb4
did not result in the corresponding default connection collation
(latin1_swedish_ci or utf8mb4_0900_ai_ci, respectively) to be
used on the server. With this fix, the server default is used in
the situation. (Bug #28207422)

* Calling UpdatableResultSet.updateClob() resulted in an
SQLFeatureNotSupportedException. It was because the
implementation of the method was missing from Connector/J, and it
has been added with this fix. (Bug #28207088)

* When a connection property's value contained an equal
sign ("=") in itself, an exception ("WrongArgumentException:
Malformed database URL") was thrown. This was due to an error in
the parser for the connection URL, which has been corrected by
this fix.  (Bug #28150662)

* Connector/J threw a SQLSyntaxErrorException when the
parameter tableName for
DatabaseMetaDataUsingInfoSchema.getTables() had a null argument.
(Bug #28034570, Bug #90887)

* Setting rewriteBatchedStatements=true and
useLocalTransactionState=true caused transactions to be
uncommitted for batched UPDATE and DELETE statements. It was due
to the intermediate queries for enabling multiquery support on
the server resetting the local transaction state as a side
effect. With this fix, the local transaction state is preserved
when the intermediate queries are executed.
(Bug #27658489, Bug #89948)

* Rewriting prepared INSERT statements in a multiquery
batch failed with a BatchUpdateException when the statements did
not contain place holders. This was due a faulty mechanism for
query rewriting, which has been corrected by this fix.
(Bug #25501750, Bug #84813)

* When using batched prepared statements with multiple
queries per statement, queries rewriting was incorrect, resulting
in the wrong queries being sent to the server.
(Bug #23098159, Bug #81063)

* Record updates failed for a scrollable and updatable
PreparedStatement when the WHERE clause for the updater or
refresher contained fractional timestamp values and the
connection property sendFractionalSeconds was set to false. It
was because in the situation, Connector/J did not perform the
proper adjustments of the fractional parts in the WHERE clause
values according to the length of the field's fractional part as
defined in the database. This fix makes Connector/J perform the
proper adjustment to the fractional part, so that the WHERE
clause value can be properly compared to the value fetched from
the database. (Bug #22305979)

* Some tests in the testsuite failed as they could not
recognize system time zone values like CEST or WEST, even with
the connection property serverTimezone set. This was because the
value of serverTimezone in the testsuite URLs, after being
processed by the testsuite, was not actually propagated as a
connection property to Connector/J. This fix makes sure the
property is in the actual URLs passed to Connector/J.
(Bug #21774249)

* When a Java Date value was bound to a PreparedStatement
parameter, attempts to format the value by a proleptic
GregorianCalendar failed to make the dates proleptic, so that
dates before the Julian-Gregorian cutover (October 15, 1582) were
stored wrongly. With this fix, a proleptic calendar is properly
used if supplied to the setDate() method.  Note that when trying
to set or retrieve dates before the Julian-Gregorian cutover with
PreparedSatement methods, a proleptic GregorianCalendar should
always be explicitly supplied to the setDate() and getDate()
method. For details, see Known Issues and Limitations
(http://dev.mysql.com/doc/connector-j/8.0/en/connector-j-
usagenotes-known-issues-limitations.html).
(Bug #18749544, Bug #72609)


Enjoy and thanks for the support!

On behalf of the MySQL Release Team,
Nawaz Nazeer Ahamed