Make pool name consistent on missing config params (#1279)
* Going red: using a config object creates two pools when missing some params It should only create a pool in a consistent way, even if some params are not provided in the first place. * Delay the pool name generation to make it consistent between calls * Don't fallback to empty object as config is already defined
This commit is contained in:
parent
e5f0e5d36a
commit
4cd56cc4f8
@ -54,7 +54,6 @@ PG.prototype.connect = function(config, callback) {
|
|||||||
callback = config;
|
callback = config;
|
||||||
config = null;
|
config = null;
|
||||||
}
|
}
|
||||||
var poolName = JSON.stringify(config || {});
|
|
||||||
if (typeof config == 'string') {
|
if (typeof config == 'string') {
|
||||||
config = new ConnectionParameters(config);
|
config = new ConnectionParameters(config);
|
||||||
}
|
}
|
||||||
@ -66,6 +65,7 @@ PG.prototype.connect = function(config, callback) {
|
|||||||
config.idleTimeoutMillis = config.idleTimeoutMillis || config.poolIdleTimeout || defaults.poolIdleTimeout;
|
config.idleTimeoutMillis = config.idleTimeoutMillis || config.poolIdleTimeout || defaults.poolIdleTimeout;
|
||||||
config.log = config.log || config.poolLog || defaults.poolLog;
|
config.log = config.log || config.poolLog || defaults.poolLog;
|
||||||
|
|
||||||
|
var poolName = JSON.stringify(config);
|
||||||
this._pools[poolName] = this._pools[poolName] || new this.Pool(config);
|
this._pools[poolName] = this._pools[poolName] || new this.Pool(config);
|
||||||
var pool = this._pools[poolName];
|
var pool = this._pools[poolName];
|
||||||
if(!pool.listeners('error').length) {
|
if(!pool.listeners('error').length) {
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
var helper = require(__dirname + "/../test-helper");
|
||||||
|
var pg = require(__dirname + "/../../../lib");
|
||||||
|
|
||||||
|
pg.connect(helper.config, assert.success(function(client, done) {
|
||||||
|
assert.equal(Object.keys(pg._pools).length, 1);
|
||||||
|
pg.connect(helper.config, assert.success(function(client2, done2) {
|
||||||
|
assert.equal(Object.keys(pg._pools).length, 1);
|
||||||
|
|
||||||
|
done();
|
||||||
|
done2();
|
||||||
|
pg.end();
|
||||||
|
}));
|
||||||
|
}));
|
Loading…
Reference in New Issue
Block a user