Index: advpoll.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/advpoll/advpoll.install,v
retrieving revision 1.5.2.16
diff -u -p -r1.5.2.16 advpoll.install
--- advpoll.install	4 Oct 2007 07:02:52 -0000	1.5.2.16
+++ advpoll.install	24 Nov 2007 19:16:32 -0000
@@ -34,10 +34,9 @@ function advpoll_install() {
       db_query("CREATE TABLE {advpoll_choices} (
         nid int(10) NOT NULL,
         label text NOT NULL,
-        vote_offset int(2) unsigned default NULL,
+        vote_offset int unsigned NOT NULL,
         writein tinyint NOT NULL default '0',
-        PRIMARY KEY (nid, vote_offset),
-        KEY vote_offset (vote_offset)
+        PRIMARY KEY (nid, vote_offset)
       ) /*!40100 DEFAULT CHARACTER SET utf8 */");
       break;
 
@@ -68,11 +67,10 @@ function advpoll_install() {
       db_query("CREATE TABLE {advpoll_choices} (
         nid integer NOT NULL,
         label text NOT NULL,
-        vote_offset smallint default NULL,
+        vote_offset smallint NOT NULL,
         writein smallint NOT NULL default '0',
         PRIMARY KEY (nid, vote_offset)
       )");
-      db_query("CREATE INDEX {advpoll_choices}_vote_offset_idx ON {advpoll_choices} (vote_offset)");
       break;
   }
 }
@@ -266,3 +264,23 @@ function advpoll_update_6() {
   }
   return $ret;
 }
+
+/**
+ * Change vote_offset to be NOT NULL, and remove the extra key on vote_offset.
+ */
+function advpoll_update_7() {
+  $ret = array();
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $ret[] = update_sql('ALTER TABLE {advpoll_choices} CHANGE vote_offset vote_offset int NOT NULL');
+      $ret[] = update_sql('ALTER TABLE {advpoll_choices} DROP INDEX vote_offset');
+      break;
+    case 'pgsql':
+      db_change_column($ret, 'advpoll_choices', 'vote_offset', 'vote_offset', 'smallint', array('not null' => TRUE));
+      $ret[] = update_sql('ALTER TABLE {advpoll_choices} DROP CONSTRAINT {advpoll_choices}_vote_offset_idx');
+      break;
+  }
+  return $ret;
+}
+
