Documentation Home
MySQL Connector/Node.js Release Notes
Download these Release Notes
PDF (US Ltr) - 119.8Kb
PDF (A4) - 119.5Kb


MySQL Connector/Node.js Release Notes  /  Changes in MySQL Connector/Node.js 8.0  /  Changes in MySQL Connector/Node.js 8.0.11 (2018-04-19, General Availability)

Changes in MySQL Connector/Node.js 8.0.11 (2018-04-19, General Availability)

Functionality Added or Changed

  • The protobuf.js library was replaced with the official google-protobuf npm package. (WL #11402)

  • Added NOWAIT and SKIP_LOCKED support to the lockShared() and lockExclusive() methods. Example: lockShared( mysqlx.LockContention.SKIP_LOCKED ). (WL #11275)

  • Added the X DevAPI SHA256_MEMORY authentication mechanism. (WL #11633)

  • Connector/Node.js now supports auto-generated document ID values generated by MySQL 8.0.11 and later server. (WL #11441)

Bugs Fixed

  • Running a select query against a table containing BIGINT values and using those values as filtering criteria could fail to function. This was because those values were converted to JavaScript numbers when encoding the protobuf message, and lost precision since the maximum safe integer in JavaScript is 2^53 - 1. (Bug #27570761)

  • Row values from columns using the FLOAT type were not rounded according to the maximum number of displayable decimal digits defined by the schema. For example, a column with type FLOAT(3,2) containing a value of 1.23456789 would display it as 1.2300000190734863 instead of the expected 1.23. (Bug #27570541)

  • Row values from columns using the BIT data type were decoded as their signed integer counterparts rather than as unsigned values. For example, b'111' was decoded as -4 instead of 7. (Bug #27570462)

  • Row values for columns of any type of unsigned integer (TINYINT, SMALLINT, MEDIUMINT, INT, or BIGINT) were interpreted by the Connector as their signed integer value counterparts. (Bug #27570342)

  • The sort() method was added to the following operations: CollectionFind, CollectionRemove, and CollectionModify. (Bug #27429922)

  • While adding a document, the expression parser rejected valid escaped string literals that constituted properties of the document, and throwing unexpected errors. (Bug #27429852)

  • Messages split into multiple fragments (either because they exceeded the MTU or the maximum size of V8 buffers) were improperly reconstructed and could not be decoded. This behavior would throw an error similar to Uncaught SyntaxError: Unexpected token. (Bug #27429429)

  • Several methods that previously returned plain JavaScript objects now return iterable arrays. Schema.getCollections() now returns an array of Collection instances, Schema.getTables() now returns an array of Table instances, and Session.getSchemas() now returns an array of Schema instances. (Bug #27294362, Bug #27221114)

  • The expression parser was executed every time a document was added but now requires an explicit call to mysqlx.expr(). For example, before the change collection.add({ name: 'foo' }) parsed the name property; to accomplish the same task following the change, use collection.add({ name: mysqlx.expr('"foo"') }). (Bug #27177864)