Skip to content

Releases: mariadb-corporation/mariadb-connector-nodejs

MariaDB connector/node.js 2.5.1

23 Oct 13:53
Compare
Choose a tag to compare

This version is a correction release (Stable (GA)).

Full Changelog

  • CONJS-149 correcting possible TypeError [ERR_UNKNOWN_ENCODING], Node v15 compatibility

MariaDB connector/node.js 2.5.0

15 Oct 19:54
Compare
Choose a tag to compare

This version is a minor correction release (Stable (GA)).

Full Changelog

  • CONJS-148 - permit setting socket keep alive (option keepAliveDelay)
  • CONJS-145 - batch rewrite error when packet reach maxAllowedPacket
  • CONJS-146 - Using callback API, batch, avoid return error if connection not established
  • CONJS-144 - TypeScript type ssl wrong definitions
  • CONJS-143 - Array parameter escaping differ from mysql/mysql2
  • CONJS-133 - Support ES2020 BigInt object (option supportBigInt)
  • CONJS-77 - Support MySQL caching_sha256_password authentication
  • CONJS-76 - Support MySQL sha256_password authentication

New Options

option description type default
arrayParenthesis Indicate if array are included in parenthesis. This option permit compatibility with version < 2.5 boolean false
rsaPublicKey Indicate path/content to MySQL server RSA public key. use requires Node.js v11.6+ string
cachingRsaPublicKey Indicate path/content to MySQL server caching RSA public key. use requires Node.js v11.6+ string
allowPublicKeyRetrieval Indicate that if rsaPublicKey or cachingRsaPublicKey public key are not provided, if client can ask server to send public key. boolean false
supportBigInt Whether resultset should return javascript ES2020 BigInt for BIGINT data type. This ensures having expected value even for value > 2^53 (see safe range). boolean false
keepAliveDelay permit to enable socket keep alive, setting delay. 0 means not enabled. Keep in mind that this don't reset server @@wait_timeout (use pool option idleTimeout for that). in ms int

CONJS-143 is a breaking change. Queries that have a IN parameter with array parameters format change.
previous format did not accept parenthesis :

conn.query('SELECT * FROM arrayParam WHERE id = ? AND val IN ?', [1, ['b', 'c']]);

now, format is

conn.query('SELECT * FROM arrayParam WHERE id = ? AND val IN (?)', [1, ['b', 'c']]);

same than mysql/mysql2 drivers.
previous behaviour can be reverted setting option arrayParenthesis to true.

MariaDB connector/node.js 2.4.2

23 Jul 15:21
Compare
Choose a tag to compare

This version is a minor correction release (Stable (GA)).

Full Changelog

  • CONJS-142 - Number parsing loss of precision

MariaDB connector/node.js 2.4.1

01 Jul 23:24
Compare
Choose a tag to compare

This version is a Stable (GA) release.

Full Changelog

  • CONJS-138 - pool.getConnection() might not timeout even with acquireTimeout set
  • CONJS-139 - createConnection(string)` does not support URL-encoded credentials
  • CONJS-140 - Support passing null values in array when doing queries. thanks to @koendeschacht
  • CONJS-141 - set default value of option restoreNodeTimeout to 1000 to avoid using blacklisted pool in cluster

2.4.0

25 May 09:44
Compare
Choose a tag to compare

This version is a Stable (GA) release.

Full Changelog

This version removes compatibility with Node.js 6, needing 10+ version!

  • CONJS-86 - Support extension type format
  • CONJS-128 - Error when using multipleStatements with metaAsArray
  • CONJS-129 - Support 10.5 pluggable type
  • CONJS-131 - checkDuplicate option is indicated in error when having dupplicate
  • CONJS-132 - performance improvement
  • CONJS-136 - typescript SqlError interface

MariaDB connector/node.js 2.3.1

20 Mar 16:50
Compare
Choose a tag to compare

This version is a Stable (GA) release.

Full Changelog

Corrective release of 2.3.0, changing new connection option timeout to queryTimeout to avoid any confusion.

MariaDB connector/node.js 2.3.0

20 Mar 15:31
Compare
Choose a tag to compare

This version is a Stable (GA) release.

Full Changelog

  • CONJS-127 - Resultset with same identifier skip data. Now an error will be thrown.
  • CONJS-126 - permit setting session query timeout per option
  • CONJS-124 - Force connection.escapeId to emit backtick #101
  • CONJS-123 - exporting SqlError class to permit instanceOf checks #100
  • CONJS-122 - fix undefined localTz with timezone: 'Z' issue #92
  • CONJS-121 - Connection.escapeId must always quote value to permit reserved words

misc:

  • appveyor testing server version upgrade
  • better debug logging trace format
  • correct ssl test

MariaDB connector/node.js 2.2.0

04 Feb 13:03
Compare
Choose a tag to compare

This version is a Stable (GA) release.

Full Changelog

CONJS-119 Add an option to detect Server version using a dedicated SELECT @@Version
Azure is using a proxy that will return a MySQL handshake not reflecting real server.
A new option `forceVersionCheck` is added to permit issuing a new `SELECT @@Version` command on connection creation, 
to retrieve the correct server version. Connector will then act according to that server version.
CONJS-20 add query timeout implementation
This option is only permitted for MariaDB server >= 10.1.2, and permits to set a timeout to query operation. 
Driver internally use `SET STATEMENT max_statement_time=<timeout> FOR <command>` permitting to cancel operation when timeout is reached, 

Implementation of max_statement_time is engine dependent, so there might be some differences: For example, with Galera engine, a commits will ensure replication to other nodes to be done, possibly then exceeded timeout, to ensure proper server state.

example:

//query that takes more than 20s
connection
  .query({sql: 'information_schema.tables, information_schema.tables as t2', timeout: 100 })
  .then(...)
  .catch(err => {
          // SQLError: (conn=2987, no: 1969, SQLState: 70100) Query execution was interrupted (max_statement_time exceeded)
          // sql: select * from information_schema.columns as c1, information_schema.tables, information_schema.tables as t2 - parameters:[]
          // at Object.module.exports.createError (C:\projets\mariadb-connector-nodejs.git\lib\misc\errors.js:55:10)
          // at PacketNodeEncoded.readError (C:\projets\mariadb-connector-nodejs.git\lib\io\packet.js:510:19)
          // at Query.readResponsePacket (C:\projets\mariadb-connector-nodejs.git\lib\cmd\resultset.js:46:28)
          // at PacketInputStream.receivePacketBasic (C:\projets\mariadb-connector-nodejs.git\lib\io\packet-input-stream.js:104:9)
          // at PacketInputStream.onData (C:\projets\mariadb-connector-nodejs.git\lib\io\packet-input-stream.js:160:20)
          // at Socket.emit (events.js:210:5)
          // at addChunk (_stream_readable.js:309:12)
          // at readableAddChunk (_stream_readable.js:290:11)
          // at Socket.Readable.push (_stream_readable.js:224:10)
          // at TCP.onStreamRead (internal/stream_base_commons.js:182:23) {
          //     fatal: true,
          //         errno: 1969,
          //         sqlState: '70100',
          //         code: 'ER_STATEMENT_TIMEOUT'
          // }
  });
CONJS-110 fast-authentication improvement:
  * add mysql_native_password to fast-authentication path
  * plugin 'mysql_native_password' is used by default if default server plugin is unknown
  * unexpected packet type during handshake result will throw a good error.
CONJS-117 Implement a pool leak detection
A new option `leakDetection` permits to indicate a timeout to log connection borrowed from pool.
When a connection is borrowed from pool and this timeout is reached, a message will be logged to console indicating a possible connection leak.
Another message will tell if the possible logged leak has been released.
A value of 0 (default) meaning Leak detection is disable   
Additionally, some error messages have improved:
- Connection timeout now indicate that this correspond to socket failing to establish
- differentiate timeout error when closing pool to standard connection retrieving timeout

misc:

  • CONJS-120 Permit values in SQL object to permits compatibility with mysql/mysql2
  • CONJS-118 missing import for Error when asking for connection when pool is closed. Thanks to @WayneMDB
  • correcting typescript import of @types/node to version >8 thanks to @SimonSchick
  • dependencies update

MariaDB connector/node.js 2.1.5

07 Jan 13:53
Compare
Choose a tag to compare

minor evolutions:

Full Changelog

  • CONJS-115 Batch improvement
    • supporting array of parameters if only one parameter per query, not only array of array
    • supporting empty array for query without parameters
  • correction on licence tag: LGPL-2.1-or-later (was tag LGPL-2.1+ that is deprecated)
  • dependencies update

MariaDB connector/node.js 2.1.4

02 Dec 16:08
Compare
Choose a tag to compare

This version is a Stable (GA) release.

Changelog

Full Changelog

  • CONJS-112 use pool reset only for corrected COM_RESET_CONNECTION
  • CONJS-111 missing pool event definition
  • dependencies update