The
protobuf.js
library was replaced with the officialgoogle-protobuf
npm
package. (WL #11402)Added
NOWAIT
andSKIP_LOCKED
support to thelockShared()
andlockExclusive()
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)
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 ofCollection
instances,Schema.getTables()
now returns an array ofTable
instances, andSession.getSchemas()
now returns an array ofSchema
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 changecollection.add({ name: 'foo' })
parsed thename
property; to accomplish the same task following the change, usecollection.add({ name: mysqlx.expr('"foo"') })
. (Bug #27177864)