You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.3 KiB
55 lines
1.3 KiB
var common = require('../../common');
|
|
var connection = common.createConnection({multipleStatements: true});
|
|
var assert = require('assert');
|
|
|
|
var sql = [
|
|
'SELECT 1',
|
|
'USE ' + common.testDatabase,
|
|
'SELECT 2',
|
|
'invalid sql',
|
|
'SELECT 3',
|
|
].join('; ');
|
|
|
|
var results = [];
|
|
var fields = [];
|
|
var hadErr = false;
|
|
|
|
var query = connection.query(sql);
|
|
query
|
|
.on('error', function(err) {
|
|
assert.equal(hadErr, false);
|
|
hadErr = true;
|
|
|
|
assert.equal(err.code, 'ER_PARSE_ERROR');
|
|
assert.equal(err.index, 3);
|
|
})
|
|
.on('fields', function(_fields, index) {
|
|
fields.push({fields: _fields, index: index});
|
|
})
|
|
.on('result', function(result, index) {
|
|
results.push({result: result, index: index});
|
|
});
|
|
|
|
connection.end();
|
|
|
|
process.on('exit', function() {
|
|
assert.ok(hadErr);
|
|
|
|
assert.equal(results.length, 3);
|
|
|
|
assert.deepEqual(results[0].result, {1: 1});
|
|
assert.equal(results[0].index, 0);
|
|
|
|
assert.equal(results[1].result.constructor.name, 'OkPacket');
|
|
assert.equal(results[1].index, 1);
|
|
|
|
assert.deepEqual(results[2].result, {2: 2});
|
|
assert.equal(results[2].index, 2);
|
|
|
|
assert.equal(fields.length, 2);
|
|
assert.equal(fields[0].fields[0].name, '1');
|
|
assert.equal(fields[1].fields[0].name, '2');
|
|
|
|
assert.equal(fields[0].index, 0);
|
|
assert.equal(fields[1].index, 2);
|
|
});
|