Index: category_menu/category_menu.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/category/category_menu/category_menu.install,v
retrieving revision 1.2
diff -u -r1.2 category_menu.install
--- category_menu/category_menu.install	14 Apr 2006 13:52:03 -0000	1.2
+++ category_menu/category_menu.install	6 Nov 2006 03:36:09 -0000
@@ -24,8 +24,9 @@
       db_query("CREATE TABLE {category_menu_map} (
         nid int(10) unsigned NOT NULL default '0',
         mid int(10) unsigned NOT NULL default '0',
-        PRIMARY KEY (nid),
-        KEY mid (mid)
+        PRIMARY KEY (nid,mid),
+        KEY mid (mid),
+        KEY nid (nid)
         ) /*!40100 DEFAULT CHARACTER SET utf8 */
       ");
       break;
@@ -39,9 +40,33 @@
       db_query("CREATE TABLE {category_menu_map} (
         nid integer NOT NULL default '0',
         mid integer NOT NULL default '0',
-        PRIMARY KEY (nid)
+        PRIMARY KEY (nid,mid)
       )");
-      db_query("CREATE INDEX {category_menu_map}_mid_idx ON {category_menu_map}(mid)");
+      db_query("CREATE INDEX {category_menu_map}_mid_idx ON {category_menu_map} (mid)");
+      db_query("CREATE INDEX {category_menu_map}_nid_idx ON {category_menu_map} (nid)");
       break;
   }
 }
+
+function category_menu_update_1() {
+  // Allow multiple entries on a node to work.
+  $ret = array();
+
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      // Update the keys.
+      $ret[] = update_sql('ALTER TABLE {category_menu_map} DROP PRIMARY KEY');
+      $ret[] = update_sql('ALTER TABLE {category_menu_map} ADD PRIMARY KEY (nid, mid)');
+      $ret[] = update_sql('ALTER TABLE {category_menu_map} ADD KEY nid (nid)');
+      break;
+    case 'pgsql':
+      // Update the keys.
+      $ret[] = update_sql('ALTER TABLE {category_menu_map} DROP CONSTRAINT {category_menu_map}_pkey');
+      $ret[] = update_sql('ALTER TABLE {category_menu_map} ADD PRIMARY KEY (nid, mid)');
+      $ret[] = update_sql('CREATE INDEX {category_menu_map}_nid_idx ON {category_menu_map} (nid)');
+      break;
+  }
+
+  return $ret;
+}
