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