Skip to content

Commit 08edba2

Browse files
committed
Add support for reset connection packet
1 parent bc6afcf commit 08edba2

File tree

5 files changed

+58
-0
lines changed

5 files changed

+58
-0
lines changed

lib/Connection.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,11 @@ Connection.prototype.ping = function(cb) {
170170
this._protocol.ping(bindToCurrentDomain(cb));
171171
};
172172

173+
Connection.prototype.reset = function reset(callback) {
174+
this._implyConnect();
175+
this._protocol.resetConnection(bindToCurrentDomain(callback));
176+
};
177+
173178
Connection.prototype.statistics = function(cb) {
174179
this._implyConnect();
175180
this._protocol.stats(bindToCurrentDomain(cb));

lib/protocol/Protocol.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ Protocol.prototype.ping = function(cb) {
5454
return this._enqueue(new Sequences.Ping(cb));
5555
};
5656

57+
Protocol.prototype.resetConnection = function resetConnection(cb) {
58+
return this._enqueue(new Sequences.ResetConnection(cb));
59+
};
60+
5761
Protocol.prototype.stats = function(cb) {
5862
return this._enqueue(new Sequences.Statistics(cb));
5963
};
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
module.exports = ComResetConnectionPacket;
2+
3+
function ComResetConnectionPacket(sql) {
4+
}
5+
6+
ComResetConnectionPacket.prototype.write = function write(writer) {
7+
writer.writeUnsignedNumber(1, 0x1f);
8+
};
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
var Sequence = require('./Sequence');
2+
var Util = require('util');
3+
var Packets = require('../packets');
4+
5+
module.exports = ResetConnection;
6+
7+
function ResetConnection(callback) {
8+
Sequence.call(this, callback);
9+
}
10+
11+
Util.inherits(ResetConnection, Sequence);
12+
13+
ResetConnection.prototype.start = function start() {
14+
this.emit('packet', new Packets.ComResetConnectionPacket);
15+
};
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
var common = require('../../common');
2+
var connection = common.createConnection();
3+
var assert = require('assert');
4+
5+
connection.connect(assertError);
6+
7+
connection.query('SET @user_var = \'apple\'', assertError);
8+
9+
connection.query('SELECT @user_var AS var', function(err, rows) {
10+
assert.ifError(err);
11+
assert.equal(rows.length, 1);
12+
assert.equal(rows[0].var, 'apple');
13+
});
14+
15+
connection.reset(assertError);
16+
17+
connection.query('SELECT @user_var AS var', function(err, _rows) {
18+
assert.ifError(err);
19+
assert.equal(rows.length, 0);
20+
});
21+
22+
connection.end(assertError);
23+
24+
function assertError(err) {
25+
assert.ifError(err);
26+
}

0 commit comments

Comments
 (0)