diff --git a/lib/adapters/postgres.js b/lib/adapters/postgres.js
index <HASH>..<HASH> 100644
--- a/lib/adapters/postgres.js
+++ b/lib/adapters/postgres.js
@@ -577,15 +577,11 @@ var DB = define(Database, {
         },
 
         primaryKey:function (table, opts) {
-            var ret = new Promise();
-            var quotedTable = this.__quoteSchemaTable(table), pks = this.__primaryKeys;
+            var ret, quotedTable = this.__quoteSchemaTable(table).toString(), pks = this.__primaryKeys;
             if (pks.hasOwnProperty(quotedTable.toString())) {
-                ret.callback(pks[quotedTable.toString()]);
+                ret = pks[quotedTable];
             } else {
-                this.__primarykey(table).then(function (res) {
-                    pks[quotedTable] = res;
-                    ret.callback(res);
-                }, ret);
+                ret = (pks[quotedTable] = this.__primarykey(table));
             }
             return ret.promise();
         },
fixed primarykey caching to use the promise.