diff --git a/lib/transaction.js b/lib/transaction.js index 953dee3b..9db790fb 100644 --- a/lib/transaction.js +++ b/lib/transaction.js @@ -21,6 +21,7 @@ function mixinTransaction(PostgreSQL) { debug('Begin a transaction with isolation level: %s', isolationLevel); this.pg.connect(function(err, connection, done) { if (err) return cb(err); + connection.autorelease = done; connection.query('BEGIN TRANSACTION ISOLATION LEVEL ' + isolationLevel, function(err) { if (err) return cb(err); @@ -63,15 +64,15 @@ function mixinTransaction(PostgreSQL) { }; PostgreSQL.prototype.releaseConnection = function(connection, err) { - if (typeof connection.release === 'function') { - connection.release(err); - connection.release = null; + if (typeof connection.autorelease === 'function') { + connection.autorelease(err); + connection.autorelease = null; } else { var pool = this.pg; if (err) { - pool.destroy(connection); + pool.pool.destroy(connection); } else { - pool.release(connection); + pool.pool.release(connection); } } };