Index: includes/bootstrap.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/bootstrap.inc,v
retrieving revision 1.206.2.2
diff -u -F^f -r1.206.2.2 bootstrap.inc
--- includes/bootstrap.inc	11 Feb 2008 14:36:21 -0000	1.206.2.2
+++ includes/bootstrap.inc	8 May 2008 00:44:54 -0000
@@ -712,6 +712,10 @@ function check_plain($text) {
  *   TRUE if the text is valid UTF-8, FALSE if not.
  */
 function drupal_validate_utf8($text) {
+  if (is_array($text)) {
+    drupal_set_message(serialize($text));
+    //return FALSE;
+  }
   if (strlen($text) == 0) {
     return TRUE;
   }
Index: includes/database.pgsql.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/database.pgsql.inc,v
retrieving revision 1.68.2.1
diff -u -F^f -r1.68.2.1 database.pgsql.inc
--- includes/database.pgsql.inc	7 Feb 2008 10:17:26 -0000	1.68.2.1
+++ includes/database.pgsql.inc	8 May 2008 00:44:54 -0000
@@ -601,6 +601,9 @@ function _db_create_field_sql($name, $sp
     if ($spec['type'] == 'serial') {
       $sql .= " CHECK ($name >= 0)";
     }
+    else if ($spec['type'] == 'numeric') {
+      // handled below
+    }
     else {
       $sql .= '_unsigned';
     }
@@ -613,6 +616,10 @@ function _db_create_field_sql($name, $sp
     $sql .= '('. $spec['precision'] .', '. $spec['scale'] .')';
   }
 
+  if ($spec['type'] == 'numeric' && !empty($spec['unsigned'])) {
+    $sql .= " CHECK ($name >= 0)";
+  }
+
   if (isset($spec['not null']) && $spec['not null']) {
     $sql .= ' NOT NULL';
   }
