diff -r -C 2 signit.orig/signit.install signit/signit.install
*** signit.orig/signit.install  Thu Aug 23 20:24:08 2007
--- signit/signit.install       Mon Sep 10 21:11:37 2007
***************
*** 42,45 ****
--- 42,82 ----
        ");
      break;
+     case 'pgsql':
+       db_query("
+         CREATE TABLE {signit} (
+         nid int NOT NULL default '0',
+         status int NOT NULL default '0',
+         data text NOT NULL,
+       PRIMARY KEY( nid )
+         )
+       ");
+       db_query("
+         CREATE TABLE {signit_targets} (
+         tid serial,
+         nid int NOT NULL default '0',
+         email varchar(225) NOT NULL default '0',
+         name varchar(225) NOT NULL,
+         PRIMARY KEY ( tid )
+         )
+      ");
+      db_query("
+        CREATE TABLE {signit_signatures} (
+        sid serial,
+        nid int NOT NULL default '0',
+        uid int NOT NULL default '0',
+        firstname varchar(255) NOT NULL,
+        lastname varchar(255) NOT NULL,
+        email varchar(255) NOT NULL,
+        created int NOT NULL default '0',
+        message text NOT NULL,
+        personal_message text NOT NULL,
+        personal_comment text NOT NULL,
+        targets text NOT NULL,
+        subject varchar(225) NOT NULL,
+        sent int NOT NULL
+        )
+      ");
+      db_query("CREATE INDEX {signit_signatures}_nid_idx ON {signit_signatures} (nid)");
+     break;
    }
  }
***************
*** 49,52 ****
--- 86,92 ----
    db_query("DROP table {signit_signatures}");
    db_query("DROP table {signit_targets}");
+   if($GLOBALS['db_type'] == 'pgsql' ) {
+     db_query("DROP index {signit_signatures}_nid_idx");
+   }
  }

diff -r -C 2 signit.orig/signit.module signit/signit.module
*** signit.orig/signit.module   Fri Sep  7 23:44:57 2007
--- signit/signit.module        Mon Sep 10 22:31:14 2007
***************
*** 972,976 ****
  /* **************************************************** */

!


--- 972,1007 ----
  /* **************************************************** */

! /**
!   * Save a signit
!   */
! function signit_save_signit($node) {
!   // deal with targets
!   // delete any existing email targets
!   db_query("DELETE FROM {signit_targets} WHERE nid = %d", $node->nid);
!
!   $targets = explode("\n", $node->signit_targets_email_to);
!   foreach ($targets as $target){
!     $data = explode(",", $target);
!     if (valid_email_address($data[0])) {
!       db_query("INSERT INTO {signit_targets} (nid, email, name) VALUES (%d, '%s', '%s')", $node->nid, $data[0], $data[1]);
!     }
!   }
!
!   // remove the target info from the rest of the data
!   unset($node->signit_targets_email_to);
!   // get serialized signit data
!   // maybe in the future this should be broken into actual db cols, but for now,
!   // this makes it easy to add additional functionality.
!   $data = signit_serialize_data($node);
!
!   // check and see if this already exists
!   $result = db_query("SELECT nid FROM {signit} WHERE nid = %d", $node->nid);
!   if ($result = db_result($result)) {
!     db_query("UPDATE {signit} SET status = %d, data = '%s' WHERE nid = %d", $node->signit_status, $data, $node->nid);
!   }
!   else {
!     db_query("INSERT INTO {signit} (nid, status, data) VALUES (%d, %d, '%s')", $node->nid, $node->signit_status, $data);
!   }
! }


***************
*** 1471,1476 ****
    $rows    = array();
    $headers = array('Week Starting', 'Signatures', 'Trend');
!   $results = db_query('SELECT COUNT(uid) AS signups, MAKEDATE(YEAR(NOW()), (WEEK(FROM_UNIXTIME(created)) * 7)-6) AS week_starting FROM {signit_signatures} WHERE nid = %d GROUP BY week_starting', $nid);
!
    $old_val = 0;
    while ($result = db_fetch_object($results)) {
--- 1502,1510 ----
    $rows    = array();
    $headers = array('Week Starting', 'Signatures', 'Trend');
!   if($GLOBALS['db_type'] == 'pgsql' ) {
!     $results = db_query("SELECT COUNT(uid) AS signups, date_trunc('week', created::ABSTIME) as week_starting FROM {signit_signatures} WHERE nid = %d GROUP BY week_starting", $nid);
!   } else {
!     $results = db_query('SELECT COUNT(uid) AS signups, MAKEDATE(YEAR(NOW()), (WEEK(FROM_UNIXTIME(created)) * 7)-6) AS week_starting FROM {signit_signatures} WHERE nid = %d GROUP BY week_starting', $nid);
!   }
    $old_val = 0;
    while ($result = db_fetch_object($results)) {
***************
*** 2136,2138 ****
    $output .= '">'. $data .'</span>';
    return $output;
! }
\ No newline at end of file
--- 2170,2172 ----
    $output .= '">'. $data .'</span>';
    return $output;
! }
