--- includes/database/pgsql/schema.inc.orig	2008-11-14 17:15:15.000000000 -0800
+++ includes/database/pgsql/schema.inc	2008-11-14 17:16:24.000000000 -0800
@@ -83,9 +83,10 @@
     if ($spec['type'] == 'serial') {
       unset($spec['not null']);
     }
+    $unsigned_check = null;
     if (!empty($spec['unsigned'])) {
-      if ($spec['type'] == 'serial') {
-        $sql .= " CHECK ($name >= 0)";
+      if ($spec['type'] != 'int' && $spec['type'] != 'bigint' && $spec['type'] != 'smallint') {
+        $unsigned_check = " CHECK ($name >= 0)";
       }
       else {
         $sql .= '_unsigned';
@@ -99,6 +100,8 @@
       $sql .= '(' . $spec['precision'] . ', ' . $spec['scale'] . ')';
     }
 
+    $sql .= $unsigned_check;
+
     if (isset($spec['not null']) && $spec['not null']) {
       $sql .= ' NOT NULL';
     }
