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.
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.mdfor 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
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)