Index: legal.module
===================================================================
--- legal.module	(revision 1893)
+++ legal.module	(working copy)
@@ -306,7 +306,7 @@
 
     // If new conditions are different from current permisions - enter in database
     if ( legal_conditions_updated($form_values) ) {
-        db_query("INSERT INTO {legal_conditions} (tc_id, conditions, date, extras, changes) VALUES (NULL, '%s', %d, '%s', '%s')", $form_values['conditions'], time(), serialize($form_values['extras']), $form_values['changes']);
+        db_query("INSERT INTO {legal_conditions} (conditions, date, extras, changes) VALUES ('%s', %d, '%s', '%s')", $form_values['conditions'], time(), serialize($form_values['extras']), $form_values['changes']);
         drupal_set_message (t('Terms & Conditions have been saved.'));
     }
     
@@ -644,7 +644,7 @@
 
 function legal_save_accept($uid, $tc_id) {
 
-  db_query("INSERT INTO {legal_accepted} (legal_id, uid, tc_id, accepted) VALUES (NULL, '%d', '%d', '%d')", $uid, $tc_id, time());
+  db_query("INSERT INTO {legal_accepted} (uid, tc_id, accepted) VALUES ('%d', '%d', '%d')", $uid, $tc_id, time());
 
   return;
 }
Index: legal.install
===================================================================
--- legal.install	(revision 1893)
+++ legal.install	(working copy)
@@ -37,7 +37,36 @@
         $created = TRUE;
       }
       break;
+    
+    /**
+    *  added schema for postgres
+    */
+    case 'pgsql':
+        $query1 = db_query("CREATE TABLE {legal_accepted} (
+                        legal_id serial,
+                        uid integer NOT NULL default '0',
+                        tc_id integer NOT NULL default '0',
+                        accepted integer NOT NULL default '0',
+                        PRIMARY KEY  (legal_id)
+                        );");
+  
+        $query2 = db_query("CREATE TABLE {legal_conditions} (
+                        tc_id serial,
+                        conditions text NOT NULL,
+                        date integer NOT NULL default '0',
+                        extras text,
+                        changes text,
+                        PRIMARY KEY  (tc_id)
+                        );");
+                        
+        $query3 = db_query("CREATE INDEX {legal_accepted}_UID_IDX
+                        ON {legal_accepted} (uid);");                
 
+      if ($query1 && $query2 && $query3 ) {
+        $created = TRUE;
+      }
+      break;
+
     default:
       break;
   }
@@ -59,6 +88,11 @@
   switch ($GLOBALS['db_type']) {
     case 'mysqli':
     case 'mysql':
+    /**
+    * there is no change between mysql and pgsql for the following alter table
+    * statements
+    */
+    case 'pgsql':
         $ret[] = update_sql("ALTER TABLE {legal_conditions} ADD extras TEXT");
         $ret[] = update_sql("ALTER TABLE {legal_conditions} ADD changes TEXT");
         break;      
