123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- var common = require('../../common');
- var connection = common.createConnection();
- var assert = require('assert');
- common.useTestDb(connection);
- var table = 'stream_test';
- connection.query([
- 'CREATE TEMPORARY TABLE `' + table + '` (',
- '`id` int(11) unsigned NOT NULL AUTO_INCREMENT,',
- '`title` varchar(255),',
- 'PRIMARY KEY (`id`)',
- ') ENGINE=InnoDB DEFAULT CHARSET=utf8'
- ].join('\n'));
- var rowCount = 10;
- for (var i = 1; i <= rowCount; i++) {
- var row = {
- id: i,
- title: 'Row #' + i,
- };
- connection.query('INSERT INTO ' + table + ' SET ?', row);
- }
- var paused = false;
- var query = connection.query('SELECT * FROM ' + table);
- var hadEnd = 0;
- var rows = [];
- var fields = undefined;
- query
- .on('fields', function(_fields, index) {
- assert.equal(index, 0);
- assert.ok(!fields);
- fields = _fields;
- })
- .on('result', function(row) {
- // Make sure we never receive a row while being paused
- assert.equal(paused, false);
- paused = true;
- connection.pause();
- setTimeout(function() {
- paused = false;
- connection.resume();
- rows.push(row);
- }, 10);
- })
- .on('end', function() {
- hadEnd = true;
- });
- connection.end();
- process.on('exit', function() {
- assert.equal(rows.length, 10);
- assert.equal(hadEnd, true);
- assert.equal(fields[0].name, 'id');
- assert.equal(fields[1].name, 'title');
- });
|