Skip to content

Commit

Permalink
[misc] using static parameter encoder
Browse files Browse the repository at this point in the history
  • Loading branch information
rusher committed Feb 26, 2024
1 parent e7a7e28 commit 92e5c8e
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 36 deletions.
6 changes: 3 additions & 3 deletions lib/cmd/batch-bulk.js
Expand Up @@ -16,7 +16,7 @@ const OkPacket = require('./class/ok-packet');
class BatchBulk extends Parser {
constructor(resolve, reject, connOpts, prepare, cmdParam) {
super(resolve, reject, connOpts, cmdParam);
this.encoder = new BinaryEncoder(this.opts);
this.writeParam = BinaryEncoder.writeParam;
this.cmdOpts = cmdParam.opts;
this.binary = true;
this.prepare = prepare;
Expand Down Expand Up @@ -282,11 +282,11 @@ class BatchBulk extends Parser {
Buffer.from([0, 0, 0, 0]), // SRID
geoBuff // WKB
]);
this.encoder.writeParam(out, param, this.opts, info);
this.writeParam(out, param, this.opts, info);
}
} else {
out.writeInt8(0x00); // value follow
this.encoder.writeParam(out, param, this.opts, info);
this.writeParam(out, param, this.opts, info);
}
} else {
out.writeInt8(0x01); // value is null
Expand Down
18 changes: 9 additions & 9 deletions lib/cmd/change-user.js
Expand Up @@ -84,21 +84,21 @@ class ChangeUser extends Authentication {

const encoding = info.collation.charset;

writeParam(out, '_client_name', encoding);
writeParam(out, 'MariaDB connector/Node', encoding);
writeAttribute(out, '_client_name', encoding);
writeAttribute(out, 'MariaDB connector/Node', encoding);

let packageJson = require('../../package.json');
writeParam(out, '_client_version', encoding);
writeParam(out, packageJson.version, encoding);
writeAttribute(out, '_client_version', encoding);
writeAttribute(out, packageJson.version, encoding);

writeParam(out, '_node_version', encoding);
writeParam(out, process.versions.node, encoding);
writeAttribute(out, '_node_version', encoding);
writeAttribute(out, process.versions.node, encoding);

if (opts.connectAttributes !== true) {
let attrNames = Object.keys(this.opts.connectAttributes);
for (let k = 0; k < attrNames.length; ++k) {
writeParam(out, attrNames[k], encoding);
writeParam(out, this.opts.connectAttributes[attrNames[k]], encoding);
writeAttribute(out, attrNames[k], encoding);
writeAttribute(out, this.opts.connectAttributes[attrNames[k]], encoding);
}
}

Expand Down Expand Up @@ -150,7 +150,7 @@ class ChangeUser extends Authentication {
}
}

function writeParam(out, val, encoding) {
function writeAttribute(out, val, encoding) {
let param = Buffer.isEncoding(encoding) ? Buffer.from(val, encoding) : Iconv.encode(val, encoding);
out.writeLengthCoded(param.length);
out.writeBuffer(param, 0, param.length);
Expand Down
2 changes: 1 addition & 1 deletion lib/cmd/encoder/binary-encoder.js
Expand Up @@ -12,7 +12,7 @@ class BinaryEncoder {
* @param opts connection options
* @param info connection information
*/
writeParam(out, value, opts, info) {
static writeParam(out, value, opts, info) {
// GEOJSON are not checked, because change to null/Buffer on parameter validation
switch (typeof value) {
case 'boolean':
Expand Down
6 changes: 3 additions & 3 deletions lib/cmd/encoder/text-encoder.js
Expand Up @@ -20,7 +20,7 @@ class TextEncoder {
* @param opts connection options
* @param info connection information
*/
writeParam(out, value, opts, info) {
static writeParam(out, value, opts, info) {
switch (typeof value) {
case 'boolean':
out.writeStringAscii(value ? 'true' : 'false');
Expand All @@ -46,7 +46,7 @@ class TextEncoder {
}
for (let i = 0; i < value.length; i++) {
if (i !== 0) out.writeStringAscii(',');
this.writeParam(out, value[i], opts, info);
TextEncoder.writeParam(out, value[i], opts, info);
}
if (opts.arrayParenthesis) {
out.writeStringAscii(')');
Expand Down Expand Up @@ -140,7 +140,7 @@ class TextEncoder {
}
out.writeString('`' + key + '`');
out.writeStringAscii('=');
this.writeParam(out, val, opts, info);
TextEncoder.writeParam(out, val, opts, info);
}
if (first) out.writeStringEscapeQuote(JSON.stringify(value));
} else {
Expand Down
4 changes: 2 additions & 2 deletions lib/cmd/execute.js
Expand Up @@ -15,7 +15,7 @@ const FieldType = require('../const/field-type');
class Execute extends Parser {
constructor(resolve, reject, connOpts, cmdParam, prepare) {
super(resolve, reject, connOpts, cmdParam);
this.encoder = new BinaryEncoder(this.opts);
this.writeParam = BinaryEncoder.writeParam;
this.binary = true;
this.prepare = prepare;
this.canSkipMeta = true;
Expand Down Expand Up @@ -247,7 +247,7 @@ class Execute extends Parser {
!(typeof value === 'object' && typeof value.pipe === 'function' && typeof value.read === 'function') &&
!Buffer.isBuffer(value)
) {
this.encoder.writeParam(out, value, this.opts, info);
this.writeParam(out, value, this.opts, info);
}
}
out.flush();
Expand Down
30 changes: 15 additions & 15 deletions lib/cmd/handshake/auth/handshake.js
Expand Up @@ -153,32 +153,32 @@ class Handshake extends PluginAuth {
out.writeInt16(0);
const encoding = info.collation ? info.collation.charset : 'utf8';

Handshake.writeParam(out, '_client_name', encoding);
Handshake.writeParam(out, 'MariaDB connector/Node', encoding);
Handshake.writeAttribute(out, '_client_name', encoding);
Handshake.writeAttribute(out, 'MariaDB connector/Node', encoding);

Handshake.writeParam(out, '_client_version', encoding);
Handshake.writeParam(out, driverVersion, encoding);
Handshake.writeAttribute(out, '_client_version', encoding);
Handshake.writeAttribute(out, driverVersion, encoding);

const address = cmd.getSocket().address().address;
if (address) {
Handshake.writeParam(out, '_server_host', encoding);
Handshake.writeParam(out, address, encoding);
Handshake.writeAttribute(out, '_server_host', encoding);
Handshake.writeAttribute(out, address, encoding);
}

Handshake.writeParam(out, '_os', encoding);
Handshake.writeParam(out, process.platform, encoding);
Handshake.writeAttribute(out, '_os', encoding);
Handshake.writeAttribute(out, process.platform, encoding);

Handshake.writeParam(out, '_client_host', encoding);
Handshake.writeParam(out, os.hostname(), encoding);
Handshake.writeAttribute(out, '_client_host', encoding);
Handshake.writeAttribute(out, os.hostname(), encoding);

Handshake.writeParam(out, '_node_version', encoding);
Handshake.writeParam(out, process.versions.node, encoding);
Handshake.writeAttribute(out, '_node_version', encoding);
Handshake.writeAttribute(out, process.versions.node, encoding);

if (opts.connectAttributes !== true) {
let attrNames = Object.keys(opts.connectAttributes);
for (let k = 0; k < attrNames.length; ++k) {
Handshake.writeParam(out, attrNames[k], encoding);
Handshake.writeParam(out, opts.connectAttributes[attrNames[k]], encoding);
Handshake.writeAttribute(out, attrNames[k], encoding);
Handshake.writeAttribute(out, opts.connectAttributes[attrNames[k]], encoding);
}
}

Expand All @@ -189,7 +189,7 @@ class Handshake extends PluginAuth {
out.flushPacket();
}

static writeParam(out, val, encoding) {
static writeAttribute(out, val, encoding) {
let param = Buffer.isEncoding(encoding) ? Buffer.from(val, encoding) : Iconv.encode(val, encoding);
out.writeLengthCoded(param.length);
out.writeBuffer(param, 0, param.length);
Expand Down
6 changes: 3 additions & 3 deletions lib/cmd/query.js
Expand Up @@ -17,7 +17,7 @@ const QUOTE = 0x27;
class Query extends Parser {
constructor(resolve, reject, connOpts, cmdParam) {
super(resolve, reject, connOpts, cmdParam);
this.encoder = new TextEncoder(this.opts);
this.writeParam = TextEncoder.writeParam;
this.binary = false;
}

Expand Down Expand Up @@ -109,7 +109,7 @@ class Query extends Parser {
//********************************************
// param isn't stream. directly write in buffer
//********************************************
this.encoder.writeParam(out, value, this.opts, info);
this.writeParam(out, value, this.opts, info);
}
}
out.writeBuffer(this.encodedSql, this.sqlPos, this.encodedSql.length - this.sqlPos);
Expand Down Expand Up @@ -211,7 +211,7 @@ class Query extends Parser {
//********************************************
// param isn't stream. directly write in buffer
//********************************************
this.encoder.writeParam(out, value, this.opts, info);
this.writeParam(out, value, this.opts, info);
}
}
}
Expand Down

0 comments on commit 92e5c8e

Please sign in to comment.