Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
3.0.0
-
None
-
MariaDB 10.2.7
Description
The following code throws an exception with MariaDB 10.2 whereas with 10.6 it just works.
[
|
{ val: 1n },
|
meta: [
|
ColumnDef {
|
_stringParser: [StringParser],
|
collation: [Collation],
|
columnLength: 1,
|
columnType: 8,
|
flags: 129,
|
scale: 0,
|
type: 'BIGINT'
|
}
|
]
|
]
|
undefined
|
/home/markusjm/sqltest/nodejs/node_modules/mariadb/lib/io/packet-output-stream.js:48
|
this.encoding = collation.charset;
|
^
|
|
TypeError: Cannot read properties of undefined (reading 'charset')
|
at PacketOutputStream.changeEncoding (/home/markusjm/sqltest/nodejs/node_modules/mariadb/lib/io/packet-output-stream.js:48:31)
|
at EventEmitter.emit (node:events:532:35)
|
at Connection.<anonymous> (/home/markusjm/sqltest/nodejs/node_modules/mariadb/lib/connection.js:595:21)
|
at Object.onceWrapper (node:events:640:26)
|
at Handshake.emit (node:events:520:28)
|
at Handshake.throwError (/home/markusjm/sqltest/nodejs/node_modules/mariadb/lib/cmd/command.js:90:10)
|
at Handshake.parseHandshakeInit (/home/markusjm/sqltest/nodejs/node_modules/mariadb/lib/cmd/handshake/handshake.js:54:19)
|
at PacketInputStream.receivePacketBasic (/home/markusjm/sqltest/nodejs/node_modules/mariadb/lib/io/packet-input-stream.js:76:9)
|
at PacketInputStream.onData (/home/markusjm/sqltest/nodejs/node_modules/mariadb/lib/io/packet-input-stream.js:139:20)
|
at Socket.emit (node:events:520:28)
|
const mariadb = require("mariadb") |
const pool = mariadb.createPool({
|
host: '127.0.0.1', |
port: 3000,
|
user:'maxuser', |
password: 'maxpwd', |
connectionLimit: 100
|
});
|
async function asyncFunction() { |
let conn;
|
try { |
conn = await pool.getConnection();
|
const rows = await conn.query("SELECT 1 as val"); |
console.log(rows); //[ {val: 1}, meta: ... ] |
const res = await conn.query("INSERT INTO myTable value (?, ?)", [1, "mariadb"]); |
console.log(res); // { affectedRows: 1, insertId: 1, warningStatus: 0 } |
} catch (err) { |
throw err; |
} finally {
|
if (conn) return conn.end(); |
}
|
}
|
asyncFunction().then(console.log, console.log)
|