Releases: mariadb-corporation/mariadb-connector-nodejs
MariaDB connector/node.js 2.5.2
This version is a correction release (Stable (GA)).
- [CONJS-151] bulk batch error (parameter truncation) #137
- [CONJS-152] correction when enabling the
permitLocalInfile
option and some initial commands - [CONJS-154] Timezone support correction and clarification
- [CONJS-155] correction to support for node.js 10.13 to 10.19
- [CONJS-156] Ensure setting capability PLUGIN_AUTH only if server has it
documentation improvement
MariaDB connector/node.js 2.5.1
This version is a correction release (Stable (GA)).
- CONJS-149 correcting possible TypeError [ERR_UNKNOWN_ENCODING], Node v15 compatibility
MariaDB connector/node.js 2.5.0
This version is a minor correction release (Stable (GA)).
- 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
This version is a minor correction release (Stable (GA)).
- CONJS-142 - Number parsing loss of precision
MariaDB connector/node.js 2.4.1
This version is a Stable (GA) release.
- 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
This version is a Stable (GA) release.
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
This version is a Stable (GA) release.
Corrective release of 2.3.0, changing new connection option timeout
to queryTimeout
to avoid any confusion.
MariaDB connector/node.js 2.3.0
This version is a Stable (GA) release.
- 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
This version is a Stable (GA) release.
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
minor evolutions:
- 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