mirror of
https://github.com/brianc/node-postgres.git
synced 2025-12-08 20:16:25 +00:00
overloaded "simple" query api to provide callback enabled prepared statement
This commit is contained in:
parent
91aac6d350
commit
0bde640bab
@ -98,10 +98,21 @@ p.pulseQueryQueue = function() {
|
||||
}
|
||||
};
|
||||
|
||||
p.query = function(config, callback) {
|
||||
p.query = function(config, values, callback) {
|
||||
//can take in strings or config objects
|
||||
config = (config.text || config.name) ? config : { text: config };
|
||||
config.callback = config.callback || callback;
|
||||
if(values) {
|
||||
if(typeof values === 'function') {
|
||||
callback = values;
|
||||
}
|
||||
else {
|
||||
config.values = values;
|
||||
}
|
||||
}
|
||||
if(callback) {
|
||||
config.callback = callback;
|
||||
}
|
||||
|
||||
var query = new Query(config);
|
||||
this.queryQueue.push(query);
|
||||
this.pulseQueryQueue();
|
||||
|
||||
@ -50,7 +50,7 @@ p.submit = function(connection) {
|
||||
result[names[i]] = rawValue === null ? null : converters[i](rawValue);
|
||||
}
|
||||
self.emit('row', result);
|
||||
|
||||
|
||||
//if no reciever, buffer rows
|
||||
if(self.callback) {
|
||||
rows.push(result);
|
||||
|
||||
@ -2,33 +2,38 @@ var helper = require(__dirname + '/../test-helper');
|
||||
var pg = require(__dirname + '/../../../lib');
|
||||
|
||||
var connected = false
|
||||
var called = false
|
||||
var simpleCalled = false
|
||||
var preparedCalled = false
|
||||
|
||||
pg.connect(helper.args, function(err, client) {
|
||||
connected = true
|
||||
test('error is null', function() {
|
||||
assert.equal(err, null)
|
||||
})
|
||||
|
||||
test('query execution', function() {
|
||||
test('simple query execution', function() {
|
||||
client.query('CREATE TEMP TABLE band(name varchar(100))')
|
||||
client.query("INSERT INTO band (name) VALUES ('dead black hearts')")
|
||||
client.query("SELECT * FROM band WHERE name = 'dead black hearts'", function(err, result) {
|
||||
called = true;
|
||||
simpleCalled = true
|
||||
assert.equal(result.rows.pop().name, 'dead black hearts')
|
||||
})
|
||||
})
|
||||
|
||||
test('prepared statement execution', function() {
|
||||
client.query('SELECT * FROM band WHERE name = $1', ['dead black hearts'], function(err, result) {
|
||||
preparedCalled = true
|
||||
assert.equal(result.rows.pop().name, 'dead black hearts')
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
process.on('exit', function() {
|
||||
assert.ok(connected, 'never connected')
|
||||
assert.ok(called, 'query result callback was never called')
|
||||
assert.ok(simpleCalled, 'query result callback was never called')
|
||||
assert.ok(preparedCalled, 'prepared callback was never called')
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
test('raises error if cannot connect', function() {
|
||||
pg.connect({database:'asdlfkajsdf there is no way this is a real database, right?!'}, function(err, client) {
|
||||
assert.ok(err, 'error was null')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user