List:Packagers« Previous MessageNext Message »
From:Hery Ramilison Date:October 22 2018 3:51pm
Subject:MySQL Connector/Node.js 8.0.13 has been released
View as plain text  
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
Thread
MySQL Connector/Node.js 8.0.13 has been releasedHery Ramilison22 Oct