2011-01-27 22:10:45 +08:00
|
|
|
//result object returned from query
|
|
|
|
//in the 'end' event and also
|
|
|
|
//passed as second argument to provided callback
|
|
|
|
var Result = function() {
|
2012-09-10 10:13:36 +08:00
|
|
|
this.command = null;
|
|
|
|
this.rowCount = null;
|
|
|
|
this.oid = null;
|
2011-01-27 22:10:45 +08:00
|
|
|
this.rows = [];
|
|
|
|
};
|
|
|
|
|
|
|
|
var p = Result.prototype;
|
|
|
|
|
2013-01-21 21:38:04 +08:00
|
|
|
var matchRegexp = /([A-Za-z]+) (\d+ )?(\d+)?/;
|
2011-01-27 22:10:45 +08:00
|
|
|
|
|
|
|
//adds a command complete message
|
|
|
|
p.addCommandComplete = function(msg) {
|
2013-01-21 21:38:04 +08:00
|
|
|
var match;
|
2012-12-11 13:25:26 +08:00
|
|
|
if(msg.text) {
|
|
|
|
//pure javascript
|
2013-01-21 21:38:04 +08:00
|
|
|
match = matchRegexp.exec(msg.text);
|
2012-12-11 13:25:26 +08:00
|
|
|
} else {
|
|
|
|
//native bindings
|
2013-01-21 21:38:04 +08:00
|
|
|
match = matchRegexp.exec(msg.command);
|
2012-12-11 13:25:26 +08:00
|
|
|
}
|
2011-01-27 22:10:45 +08:00
|
|
|
if(match) {
|
|
|
|
this.command = match[1];
|
|
|
|
//match 3 will only be existing on insert commands
|
|
|
|
if(match[3]) {
|
2012-12-11 13:25:26 +08:00
|
|
|
//msg.value is from native bindings
|
2013-01-21 21:38:04 +08:00
|
|
|
this.rowCount = parseInt(match[3] || msg.value, 10);
|
|
|
|
this.oid = parseInt(match[2], 10);
|
2011-01-27 22:10:45 +08:00
|
|
|
} else {
|
2013-01-21 21:38:04 +08:00
|
|
|
this.rowCount = parseInt(match[2], 10);
|
2011-01-27 22:10:45 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
p.addRow = function(row) {
|
|
|
|
this.rows.push(row);
|
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = Result;
|