--- user_badges.install	2006-07-25 22:28:20.000000000 +0800
+++ /opt/www/drupal-4.7.int.thatsbj.com/modules/user_badges/user_badges.install	2007-02-16 11:50:16.000000000 +0800
@@ -2,25 +2,63 @@
 // $Id: user_badges.install,v 1.1 2006/07/25 14:28:20 heine Exp $
 
 function user_badges_install() {
-  $ret = array();
-  $ret[] = db_query("CREATE TABLE {user_badges_badges} (
-  bid int(10) NOT NULL default '0',
-  name varchar(50) NOT NULL default '',
-  image varchar(80) NOT NULL default '',
-  weight int(2) NOT NULL default '0'
-  )");
-  $ret[] = db_query("CREATE TABLE {user_badges_product} (
-  bid int(10) NOT NULL default '0',
-  nid int(10) NOT NULL default '0'
-)");
-  $ret[] = db_query("CREATE TABLE {user_badges_roles} (
-  rid int(10) NOT NULL default '0',
-  bid int(10) NOT NULL default '0'
-)");
-  $ret[] = db_query("CREATE TABLE {user_badges_user} (
-  uid int(10) NOT NULL default '0',
-  bid int(10) NOT NULL default '0',
-  type varchar(20) NOT NULL default ''
-)");
-  return $ret;
+  switch ($GLOBALS['db_type']) {
+    case 'mysqli':
+    case 'mysql':
+      db_query("CREATE TABLE {user_badges_badges} (
+        bid int(10) NOT NULL default '0',
+        name varchar(50) NOT NULL default '',
+        image varchar(80) NOT NULL default '',
+        weight int(2) NOT NULL default '0',
+        PRIMARY KEY (bid)
+      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+
+      db_query("CREATE TABLE {user_badges_product} (
+        bid int(10) NOT NULL default '0',
+        nid int(10) NOT NULL default '0'
+      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+
+      db_query("CREATE TABLE {user_badges_roles} (
+        rid int(10) NOT NULL default '0',
+        bid int(10) NOT NULL default '0'
+      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+
+      db_query("CREATE TABLE {user_badges_user} (
+        uid int(10) NOT NULL default '0',
+        bid int(10) NOT NULL default '0',
+        type varchar(20) NOT NULL default ''
+      ) /*!40100 DEFAULT CHARACTER SET UTF8 */ ");
+      
+      break;
+    case 'pgsql':
+      db_query("CREATE TABLE {user_badges_badges} (
+        bid int NOT NULL default '0',
+        name varchar(50) NOT NULL default '',
+        image varchar(80) NOT NULL default '',
+        weight int NOT NULL default '0',
+        PRIMARY KEY (bid)
+      ); ");
+
+      db_query("CREATE SEQUENCE {user_badges_badges}_seq ON {user_badges_badges} (bid);");
+
+      db_query("CREATE TABLE {user_badges_product} (
+        bid int NOT NULL default '0',
+        nid int NOT NULL default '0'
+      ); ");
+
+      db_query("CREATE TABLE {user_badges_roles} (
+        rid int NOT NULL default '0',
+        bid int NOT NULL default '0'
+      ); ");
+
+      db_query("CREATE TABLE {user_badges_user} (
+        uid int NOT NULL default '0',
+        bid int NOT NULL default '0',
+        type varchar(20) NOT NULL default ''
+      ); ");
+
+      break;
+    default:
+      break;
+  }
 }
