From ee47a2bf0cefc9ef53e0cd34236eaf99bb69e683 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?G=C3=A1bor=20Hojtsy?= <gabor@hojtsy.hu>
Date: Fri, 28 May 2010 15:02:16 +0000
Subject: [PATCH] #256001 by bjaspan, stormsweeper, Darren Oh: pgsql driver
 does not handle unsigned numeric fields properly

---
 includes/database.pgsql.inc | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/includes/database.pgsql.inc b/includes/database.pgsql.inc
index 32ae48e0bb31..4a074862ecba 100644
--- a/includes/database.pgsql.inc
+++ b/includes/database.pgsql.inc
@@ -579,14 +579,6 @@ function _db_create_field_sql($name, $spec) {
   if ($spec['type'] == 'serial') {
     unset($spec['not null']);
   }
-  if (!empty($spec['unsigned'])) {
-    if ($spec['type'] == 'serial') {
-      $sql .= " CHECK ($name >= 0)";
-    }
-    else {
-      $sql .= '_unsigned';
-    }
-  }
 
   if (in_array($spec['type'], array('varchar', 'char', 'text')) && isset($spec['length'])) {
     $sql .= '('. $spec['length'] .')';
@@ -595,6 +587,10 @@ function _db_create_field_sql($name, $spec) {
     $sql .= '('. $spec['precision'] .', '. $spec['scale'] .')';
   }
 
+  if (!empty($spec['unsigned'])) {
+    $sql .= " CHECK ($name >= 0)";
+  }
+
   if (isset($spec['not null']) && $spec['not null']) {
     $sql .= ' NOT NULL';
   }
-- 
GitLab