From c30fed3552a3f37249b6dc67aeb5aa921e623090 Mon Sep 17 00:00:00 2001 From: zbarbuto Date: Mon, 2 May 2016 12:36:43 +0930 Subject: [PATCH 1/4] Allow non-id serial properties Use case: using GUIDs for a primary key but still want an auto-incrementing counter value --- lib/migration.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/migration.js b/lib/migration.js index a9a6816f..6381016b 100644 --- a/lib/migration.js +++ b/lib/migration.js @@ -385,7 +385,7 @@ function mixinMigration(PostgreSQL) { var self = this; var modelDef = this.getModelDefinition(model); var prop = modelDef.properties[propName]; - if (prop.id && prop.generated) { + if (prop.generated) { return 'SERIAL'; } var result = self.columnDataType(model, propName); From 6992f3554b478f66f7f15d88282017d4fadcee37 Mon Sep 17 00:00:00 2001 From: Zak Barbuto Date: Thu, 10 Nov 2016 21:51:33 +1030 Subject: [PATCH 2/4] Use provided done function to release the connection instead of relying on connection.release https://github.com/brianc/node-postgres/wiki/Transactions --- lib/transaction.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/transaction.js b/lib/transaction.js index 953dee3b..5e260965 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,9 +64,9 @@ 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) { From f6c06743020d3e88656b0cf62de93df5d16e206f Mon Sep 17 00:00:00 2001 From: Zak Barbuto Date: Thu, 10 Nov 2016 21:52:47 +1030 Subject: [PATCH 3/4] Fix concurrency bug fallback https://github.com/strongloop/loopback-connector-postgresql/pull/146 --- lib/transaction.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/transaction.js b/lib/transaction.js index 5e260965..9db790fb 100644 --- a/lib/transaction.js +++ b/lib/transaction.js @@ -70,9 +70,9 @@ function mixinTransaction(PostgreSQL) { } else { var pool = this.pg; if (err) { - pool.destroy(connection); + pool.pool.destroy(connection); } else { - pool.release(connection); + pool.pool.release(connection); } } }; From 2c973b52f9eb63360dadcdb66f67f828b494cce8 Mon Sep 17 00:00:00 2001 From: Zak Barbuto Date: Tue, 10 Jan 2017 15:34:27 +1030 Subject: [PATCH 4/4] Revert c30fed3552a3f37249b6dc67aeb5aa921e623090 --- lib/migration.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/migration.js b/lib/migration.js index 30d14729..c1dee3c3 100644 --- a/lib/migration.js +++ b/lib/migration.js @@ -394,7 +394,7 @@ function mixinMigration(PostgreSQL) { var self = this; var modelDef = this.getModelDefinition(model); var prop = modelDef.properties[propName]; - if (prop.generated) { + if (prop.id && prop.generated) { return 'SERIAL'; } var result = self.columnDataType(model, propName);