The
protobuf.jslibrary was replaced with the officialgoogle-protobufnpmpackage. (WL #11402)Added
NOWAITandSKIP_LOCKEDsupport 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
BIGINTvalues 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
FLOATtype 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
BITdata 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 ofCollectioninstances,Schema.getTables()now returns an array ofTableinstances, andSession.getSchemas()now returns an array ofSchemainstances. (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 thenameproperty; to accomplish the same task following the change, usecollection.add({ name: mysqlx.expr('"foo"') }). (Bug #27177864)