Socket
Socket
Sign inDemoInstall

mysql2

Package Overview
Dependencies
Maintainers
1
Versions
184
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mysql2 - npm Package Compare versions

Comparing version 0.9.2 to 0.10.1

examples/s.js

2

benchmarks/bench-fake-server.js

@@ -36,3 +36,3 @@ var common = require('../test/common');

function benchmarkSelects(n, cb) {
var numSelects = 100000;
var numSelects = 1000;
var start = process.hrtime();

@@ -39,0 +39,0 @@ benchmarkSelect(numSelects, function(rowsPerQuery) {

@@ -15,2 +15,3 @@ var assert = require('assert');

db.query(sql).on('end', function(err, res) {
//db.execute(sql).on('end', function(err, res) {
left--;

@@ -17,0 +18,0 @@ if (left % 1000 === 0)

@@ -55,6 +55,6 @@ var mysql = require('../index.js');

decimals: 0
}], ['12345'], 1);
}], ['12345'], 10000);
var server = mysql.createServer();
server.listen('/tmp/mybench3.sock');
server.listen('/tmp/mybench4.sock');
server.on('connection', function(conn) {

@@ -61,0 +61,0 @@ conn.serverHandshake({

// top version is work in progres
0.9.3
0.10.2
- Multiple results support in binary protocol #27
- Apply timezone from config to DATETIME values with no tz #15
0.10.1
- Added ping command #38 cbca8648d1282fb57e55b3735c3b4d9a46d89d7b
0.9.2

@@ -7,0 +10,0 @@ - correctly parse NULL result for string and number #35 0a4ac65ec812f75861dc00c9243921d5d6602914

@@ -1,5 +0,126 @@

var mysql = require('../test/common').createConnection();
var mysql = require('../test/common').createConnection({multipleStatements: true});
var assert = require('assert');
mysql.query('CREATE TEMPORARY TABLE no_rows (test int)');
mysql.query('CREATE TEMPORARY TABLE some_rows (test int)');
mysql.query('INSERT INTO some_rows values(0)');
mysql.query('INSERT INTO some_rows values(42)');
mysql.query('INSERT INTO some_rows values(314149)');
mysql.query("SELECT cast(NULL AS SIGNED)", function(err, rows, fields) {
console.log(rows, fields);
});
var clone = function(obj) { return JSON.parse(JSON.stringify(obj)); };
var rs1 = {
affectedRows: 0,
fieldCount: 0,
insertId: 0,
serverStatus: 10,
warningStatus: 0
};
var rs2 = clone(rs1);
rs2.serverStatus = 2;
var twoInsertResult = [[rs1, rs2], [undefined, undefined], 2];
var select1 = [{"1":"1"}];
var select2 = [{"2":"2"}];
var fields1 = [{
catalog: "def",
characterSet: 63,
columnLength: 1,
columnType: 8,
decimals: 0,
flags: 129,
name: "1",
orgName: "",
orgTable: "",
schema: "",
table: ""
}];
var nr_fields = [{
catalog: "def",
characterSet: 63,
columnLength: 11,
columnType: 3,
decimals: 0,
flags: 0,
name: "test",
orgName: "test",
orgTable: "no_rows",
schema: "test",
table: "no_rows"
}];
var sr_fields = clone(nr_fields);
sr_fields[0].orgTable = "some_rows";
sr_fields[0].table = "some_rows";
var select3 = [{"test":0},{"test":42},{"test":314149}];
var fields2 = clone(fields1);
fields2[0].name = "2";
var tests = [
["SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT; SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS;", twoInsertResult],
["/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;", twoInsertResult], // issue #26
["set @a = 1", [rs2, undefined, 1]], // one insert result
["set @a = 1; set @b = 2", twoInsertResult],
["select 1; select 2", [[select1,select2],[fields1,fields2], 2]],
["set @a = 1; select 1", [[rs1, select1], [undefined, fields1], 2]],
["select 1; set @a = 1", [[select1, rs2], [fields1, undefined], 2]],
["select * from no_rows", [[], nr_fields, 1]], // select 0 rows"
["set @a = 1; select * from no_rows", [[rs1, []], [undefined, nr_fields], 2]], // insert + select 0 rows
["select * from no_rows; set @a = 1", [[[], rs2], [nr_fields, undefined], 2]], // select 0 rows + insert
["set @a = 1; select * from some_rows", [[rs1, select3],[undefined,sr_fields],2]], // insert + select 3 rows
["select * from some_rows; set @a = 1", [[select3,rs2],[sr_fields,undefined],2]] // select 3 rows + insert
];
// TODO: tests with error in the query with different index
function do_test(testIndex) {
var entry = tests[testIndex];
var sql = entry[0];
var expectation = entry[1];
mysql.query(sql, function(err, _rows, _columns, _numResults) {
if (err) return; //process.exit(1);
assert.deepEqual(expectation, [_rows, _columns, _numResults]);
//assert.deepEqual(expectation[0], _rows);
//assert.deepEqual(expectation[1], _columns);
//assert.deepEqual(expectation[2], _numResults);
var q = mysql.query(sql);
var resIndex = 0;
var rowIndex = 0;
function checkRow(row, index) {
if (_numResults == 1) {
assert.equal(index, 0);
if (row.constructor.name == 'ResultSetHeader')
assert.deepEqual(_rows, row);
else
assert.deepEqual(_rows[rowIndex], row);
} else {
if (resIndex != index) {
rowIndex = 0;
resIndex = index;
}
if (row.constructor.name == 'ResultSetHeader')
assert.deepEqual(_rows[index], row);
else
assert.deepEqual(_rows[index][rowIndex], row);
}
rowIndex++;
}
function checkFields(fields, index) {
if (_numResults == 1) {
assert.equal(index, 0);
assert.deepEqual(_columns, fields);
}
else
assert.deepEqual(_columns[index], fields);
}
q.on('result', checkRow);
q.on('fields', checkFields);
q.on('end', function() {
if (testIndex + 1 < tests.length)
do_test(testIndex + 1);
else {
mysql.end();
}
});
});
}
do_test(0);

@@ -1,4 +0,4 @@

"client_handshake server_handshake query execute".split(' ').forEach(function(name) {
"client_handshake server_handshake query execute ping".split(' ').forEach(function(name) {
var ctor = require('./' + name);
module.exports[ctor.name] = ctor;
});

@@ -306,2 +306,6 @@ var net = require('net');

Connection.prototype.ping = function(cb) {
return this.addCommand(new Commands.Ping(cb));
};
Connection.prototype.connect = function(cb) {

@@ -308,0 +312,0 @@ // TODO: call cb only after succesfull handshake response

@@ -361,2 +361,7 @@ //var BigNumber = require("bignumber.js");

Packet.prototype.writeNull = function() {
this.buffer[this.offset] = 0xfb;
this.offset++;
};
// TODO: refactor following three?

@@ -363,0 +368,0 @@ Packet.prototype.writeNullTerminatedString = function(s) {

{
"name": "mysql2",
"version": "0.9.2",
"version": "0.10.1",
"description": "fast mysql driver. Implements core protocol, prepared statements, ssl and compression in native JS",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -9,2 +9,7 @@ var mysql = require('../../common').createConnection({multipleStatements: true});

mysql.query('DROP PROCEDURE IF EXISTS p; CREATE PROCEDURE p(IN i INT) BEGIN SELECT i+1; SELECT * FROM some_rows; SELECT i+2; END;');
mysql.execute('CALL p(1)', function(err, r, f, num) {
debugger;
});
var clone = function(obj) { return JSON.parse(JSON.stringify(obj)); };

@@ -11,0 +16,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc