Index: database/database.mysql
===================================================================
RCS file: /cvs/drupal/drupal/database/database.mysql,v
retrieving revision 1.217
diff -u -p -r1.217 database.mysql
--- database/database.mysql	10 Jan 2006 12:26:46 -0000	1.217
+++ database/database.mysql	10 Jan 2006 18:58:21 -0000
@@ -712,7 +712,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.161
diff -u -p -r1.161 database.pgsql
--- database/database.pgsql	10 Jan 2006 12:26:46 -0000	1.161
+++ database/database.pgsql	10 Jan 2006 18:58:21 -0000
@@ -705,7 +705,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.181
diff -u -p -r1.181 updates.inc
--- database/updates.inc	10 Jan 2006 18:26:35 -0000	1.181
+++ database/updates.inc	10 Jan 2006 18:58:21 -0000
@@ -1421,3 +1421,19 @@ function system_update_167() {
 
   return $ret;
 }
+
+function system_update_168() {
+  $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;
+}
