123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 'use strict';
- const Query = require('./query');
- const { Readable } = require('stream');
- /**
- * Protocol COM_QUERY with streaming events.
- * see : https://mariadb.com/kb/en/library/com_query/
- */
- class Stream extends Query {
- constructor(cmdOpts, connOpts, sql, values, socket) {
- super(
- () => {},
- () => {},
- cmdOpts,
- connOpts,
- sql,
- values
- );
- this.socket = socket;
- this.inStream = new Readable({
- objectMode: true,
- read: () => {}
- });
- this.on('fields', function (meta) {
- this.inStream.emit('fields', meta);
- });
- this.on('error', function (err) {
- this.inStream.emit('error', err);
- });
- this.on('end', function (err) {
- if (err) this.inStream.emit('error', err);
- this.inStream.push(null);
- });
- }
- handleNewRows(row) {
- this.inStream.push(row);
- }
- }
- module.exports = Stream;
|