Dear MySQL users,
MySQL Connector/Node.js is a new Node.js driver for use with the X
DevAPI. This release, v8.0.18, 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.18 (2019-10-14, General
Availability)
Functionality Added or Changed
- Implemented the X DevAPI cursor model, which includes
adding methods such as fetchOne(), fetchAll(),
getColumns(), hasData(), and nextResult(). For additional
details, see the X DevAPI documentation about Working
with Result Sets
(https://dev.mysql.com/doc/x-devapi-userguide/en/working-with-result-sets.html).
Previously, handling result set data or metadata required
specific callback functions when calling execute(). With
this new interface, the connector automatically switches
to this new pull-based cursor model if these callback
functions are not provided.
- Improved Collection.getOne() performance by making the
underlying lookup expression to only parse once, and
having subsequent Collection.getOne() calls utilize
server-side prepared statements. - Added support to generate test coverage reports by
running the likes of npm run coverage; see the bundled
CONTRIBUTING.md for details and requirements. This was
added to help users contribute patches. - Added linter check support to help enforce coding style
and convention rules for new contributions by running the
likes of npm run linter; see the bundled CONTRIBUTING.md
for details.
Bugs Fixed
- Added support for assigning Node.js Buffer values to
expression or SQL query placeholders. (Bug #30163003, Bug 96480) - MySQL column binary values (such as BLOB, BINARY, and
VARBINARY) can now convert to proper Node.js Buffer
instances. (Bug #30162858, Bug #96478) - Inserting a raw Node.js Buffer value into MySQL BLOB
field resulted in an error as the content_type was
improperly set; it’s now handled as a raw byte string by
the X Plugin. (Bug #30158425) - The padding characters used for fixed-lengthed columns
now map to the collation code provided by the column
metadata; previously it was based on the JavaScript
native type of the values. (Bug #30030159)
On Behalf of MySQL/ORACLE RE Team
Gipson Pulla