2010-10-24 09:26:24 +08:00
|
|
|
var net = require('net');
|
2010-10-25 14:30:14 +08:00
|
|
|
var helper = require(__dirname+'/../test-helper');
|
2010-10-24 09:26:24 +08:00
|
|
|
|
2010-10-26 10:43:55 +08:00
|
|
|
var connect = function(callback) {
|
|
|
|
var username = helper.args.user;
|
|
|
|
var database = helper.args.database;
|
|
|
|
var con = new Connection({stream: new net.Stream()});
|
|
|
|
con.on('error', function(error){
|
2010-10-26 10:25:44 +08:00
|
|
|
console.log(error);
|
|
|
|
throw new Error("Connection error");
|
|
|
|
});
|
2010-10-26 10:43:55 +08:00
|
|
|
con.connect('5432','localhost');
|
|
|
|
con.once('connect', function() {
|
|
|
|
con.startup({
|
2010-10-24 09:26:24 +08:00
|
|
|
user: username,
|
|
|
|
database: database
|
|
|
|
});
|
2010-10-26 10:43:55 +08:00
|
|
|
con.once('authenticationCleartextPassword', function(){
|
|
|
|
con.password(helper.args.password);
|
2010-10-26 10:25:44 +08:00
|
|
|
});
|
2010-10-26 10:43:55 +08:00
|
|
|
con.once('authenticationMD5Password', function(msg){
|
2010-10-26 10:25:44 +08:00
|
|
|
var inner = Client.md5(helper.args.password+helper.args.user);
|
|
|
|
var outer = Client.md5(inner + msg.salt.toString('binary'));
|
2010-10-26 10:43:55 +08:00
|
|
|
con.password("md5"+outer);
|
2010-10-26 10:25:44 +08:00
|
|
|
});
|
2010-10-24 09:26:24 +08:00
|
|
|
con.once('readyForQuery', function() {
|
|
|
|
con.query('create temp table ids(id integer)');
|
2010-10-24 10:16:21 +08:00
|
|
|
con.once('readyForQuery', function() {
|
|
|
|
con.query('insert into ids(id) values(1); insert into ids(id) values(2);');
|
|
|
|
con.once('readyForQuery', function() {
|
|
|
|
callback(con);
|
|
|
|
});
|
|
|
|
});
|
2010-10-24 09:26:24 +08:00
|
|
|
});
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
connect: connect
|
|
|
|
};
|