Index: database/database.mysql
===================================================================
RCS file: /cvs/drupal/drupal/database/database.mysql,v
retrieving revision 1.214
diff -u -p -u -p -r1.214 database.mysql
--- database/database.mysql	4 Jan 2006 09:17:02 -0000	1.214
+++ database/database.mysql	6 Jan 2006 17:31:10 -0000
@@ -710,7 +710,8 @@ CREATE TABLE term_hierarchy (
   tid int(10) unsigned NOT NULL default '0',
   parent int(10) unsigned NOT NULL default '0',
   KEY tid (tid),
-  KEY parent (parent)
+  KEY parent (parent),
+  PRIMARY KEY (tid, parent)
 ) TYPE=MyISAM;
 
 --
Index: database/database.pgsql
===================================================================
RCS file: /cvs/drupal/drupal/database/database.pgsql,v
retrieving revision 1.158
diff -u -p -u -p -r1.158 database.pgsql
--- database/database.pgsql	4 Jan 2006 09:17:02 -0000	1.158
+++ database/database.pgsql	6 Jan 2006 17:31:10 -0000
@@ -703,7 +703,8 @@ CREATE INDEX term_data_vid_idx ON term_d
 
 CREATE TABLE term_hierarchy (
   tid integer NOT NULL default '0',
-  parent integer NOT NULL default '0'
+  parent integer NOT NULL default '0',
+  PRIMARY KEY (tid, parent)
 );
 CREATE INDEX term_hierarchy_tid_idx ON term_hierarchy(tid);
 CREATE INDEX term_hierarchy_parent_idx ON term_hierarchy(parent);
Index: database/updates.inc
===================================================================
RCS file: /cvs/drupal/drupal/database/updates.inc,v
retrieving revision 1.176
diff -u -p -u -p -r1.176 updates.inc
--- database/updates.inc	6 Jan 2006 07:12:24 -0000	1.176
+++ database/updates.inc	6 Jan 2006 17:31:11 -0000
@@ -1397,3 +1397,19 @@ function system_update_166() {
 
   return $ret;
 }
+
+function system_update_167() {
+  $ret = array();
+
+  switch ($GLOBALS['db_type']) {
+    case 'mysqli':
+    case 'mysql':
+      $ret[] = update_sql("ALTER TABLE {term_hierarchy} ADD PRIMARY KEY (tid, parent)");
+      break;
+    case 'pgsql':
+      $ret[] = update_sql("ALTER TABLE {term_hierarchy} ADD PRIMARY KEY (tid, parent)");
+      break;
+  }
+
+  return $ret;
+}
