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; +}