mysql2 3.14.3 → 3.14.4-canary.64ea4cdd
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/base/connection.js +1 -1
- package/lib/commands/query.js +57 -20
- package/package.json +2 -2
package/lib/base/connection.js
CHANGED
|
@@ -392,7 +392,7 @@ class BaseConnection extends EventEmitter {
|
|
|
392
392
|
secureSocket.on('data', (data) => {
|
|
393
393
|
this.packetParser.execute(data);
|
|
394
394
|
});
|
|
395
|
-
this.
|
|
395
|
+
this.stream = secureSocket;
|
|
396
396
|
}
|
|
397
397
|
|
|
398
398
|
protocolError(message, code) {
|
package/lib/commands/query.js
CHANGED
|
@@ -271,30 +271,67 @@ class Query extends Command {
|
|
|
271
271
|
}
|
|
272
272
|
|
|
273
273
|
stream(options) {
|
|
274
|
-
options = options ||
|
|
274
|
+
options = options || Object.create(null);
|
|
275
275
|
options.objectMode = true;
|
|
276
|
-
|
|
277
|
-
stream
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
this._connection.
|
|
283
|
-
}
|
|
284
|
-
stream.emit('result', row, resultSetIndex); // replicate old emitter
|
|
285
|
-
});
|
|
286
|
-
this.on('error', (err) => {
|
|
287
|
-
stream.emit('error', err); // Pass on any errors
|
|
276
|
+
|
|
277
|
+
const stream = new Readable({
|
|
278
|
+
...options,
|
|
279
|
+
emitClose: true,
|
|
280
|
+
autoDestroy: true,
|
|
281
|
+
read: () => {
|
|
282
|
+
this._connection && this._connection.resume();
|
|
283
|
+
},
|
|
288
284
|
});
|
|
289
|
-
|
|
290
|
-
|
|
285
|
+
|
|
286
|
+
// Prevent a breaking change for users that rely on `end` event
|
|
287
|
+
stream.once('close', () => {
|
|
288
|
+
if (!stream.readableEnded) {
|
|
289
|
+
stream.emit('end');
|
|
290
|
+
}
|
|
291
291
|
});
|
|
292
|
-
|
|
292
|
+
|
|
293
|
+
const onResult = (row, index) => {
|
|
294
|
+
if (stream.destroyed) return;
|
|
295
|
+
|
|
296
|
+
if (!stream.push(row)) {
|
|
297
|
+
this._connection && this._connection.pause();
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
stream.emit('result', row, index); // replicate old emitter
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
const onFields = (fields) => {
|
|
304
|
+
if (stream.destroyed) return;
|
|
305
|
+
|
|
293
306
|
stream.emit('fields', fields); // replicate old emitter
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
307
|
+
};
|
|
308
|
+
|
|
309
|
+
const onEnd = () => {
|
|
310
|
+
if (stream.destroyed) return;
|
|
311
|
+
|
|
312
|
+
stream.push(null); // pushing null, indicating EOF
|
|
313
|
+
};
|
|
314
|
+
|
|
315
|
+
const onError = (err) => {
|
|
316
|
+
stream.destroy(err);
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
stream._destroy = (err, cb) => {
|
|
320
|
+
this._connection && this._connection.resume();
|
|
321
|
+
|
|
322
|
+
this.removeListener('result', onResult);
|
|
323
|
+
this.removeListener('fields', onFields);
|
|
324
|
+
this.removeListener('end', onEnd);
|
|
325
|
+
this.removeListener('error', onError);
|
|
326
|
+
|
|
327
|
+
cb(err); // Pass on any errors
|
|
328
|
+
};
|
|
329
|
+
|
|
330
|
+
this.on('result', onResult);
|
|
331
|
+
this.on('fields', onFields);
|
|
332
|
+
this.on('end', onEnd);
|
|
333
|
+
this.on('error', onError);
|
|
334
|
+
|
|
298
335
|
return stream;
|
|
299
336
|
}
|
|
300
337
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mysql2",
|
|
3
|
-
"version": "3.14.
|
|
3
|
+
"version": "3.14.4-canary.64ea4cdd",
|
|
4
4
|
"description": "fast mysql driver. Implements core protocol, prepared statements, ssl and compression in native JS",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"typings": "typings/mysql/index",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"aws-ssl-profiles": "^1.1.1",
|
|
50
50
|
"denque": "^2.1.0",
|
|
51
51
|
"generate-function": "^2.3.1",
|
|
52
|
-
"iconv-lite": "^0.
|
|
52
|
+
"iconv-lite": "^0.7.0",
|
|
53
53
|
"long": "^5.2.1",
|
|
54
54
|
"lru.min": "^1.0.0",
|
|
55
55
|
"named-placeholders": "^1.1.3",
|