From 88723451becc5e55d1521e7bb70f837e3104499f Mon Sep 17 00:00:00 2001
From: Dries Buytaert <dries@buytaert.net>
Date: Tue, 9 May 2006 14:42:08 +0000
Subject: [PATCH] - Patch #62478 by Matt: database schema cleanup.

---
 database/database.4.0.mysql | 11 ++++++-----
 database/database.4.1.mysql | 11 ++++++-----
 database/updates.inc        | 19 +++++++++++++++++++
 3 files changed, 31 insertions(+), 10 deletions(-)

diff --git a/database/database.4.0.mysql b/database/database.4.0.mysql
index e6a57a4a3f4b..b4a4dcc4f2d6 100644
--- a/database/database.4.0.mysql
+++ b/database/database.4.0.mysql
@@ -412,17 +412,18 @@ CREATE TABLE node (
   promote int(2) NOT NULL default '0',
   moderate int(2) NOT NULL default '0',
   sticky int(2) NOT NULL default '0',
-  PRIMARY KEY (nid),
+  PRIMARY KEY  (nid, vid),
+  UNIQUE KEY vid (vid),
   KEY node_type (type(4)),
-  KEY node_title_type (title,type(4)),
+  KEY node_title_type (title, type(4)),
   KEY status (status),
   KEY uid (uid),
-  KEY vid (vid),
   KEY node_moderate (moderate),
   KEY node_promote_status (promote, status),
   KEY node_created (created),
   KEY node_changed (changed),
-  KEY node_status_type (status, type, nid)
+  KEY node_status_type (status, type, nid),
+  KEY nid (nid)
 );
 
 --
@@ -634,7 +635,7 @@ CREATE TABLE sequences (
 --
 
 CREATE TABLE node_counter (
-  nid int(11) NOT NULL default '0',
+  nid int(10) NOT NULL default '0',
   totalcount bigint(20) unsigned NOT NULL default '0',
   daycount mediumint(8) unsigned NOT NULL default '0',
   timestamp int(11) unsigned NOT NULL default '0',
diff --git a/database/database.4.1.mysql b/database/database.4.1.mysql
index f15de50d7e34..52eebe6e3d53 100644
--- a/database/database.4.1.mysql
+++ b/database/database.4.1.mysql
@@ -440,17 +440,18 @@ CREATE TABLE node (
   promote int(2) NOT NULL default '0',
   moderate int(2) NOT NULL default '0',
   sticky int(2) NOT NULL default '0',
-  PRIMARY KEY (nid),
+  PRIMARY KEY  (nid, vid),
+  UNIQUE KEY vid (vid),
   KEY node_type (type(4)),
-  KEY node_title_type (title,type(4)),
+  KEY node_title_type (title, type(4)),
   KEY status (status),
   KEY uid (uid),
-  KEY vid (vid),
   KEY node_moderate (moderate),
   KEY node_promote_status (promote, status),
   KEY node_created (created),
   KEY node_changed (changed),
-  KEY node_status_type (status, type, nid)
+  KEY node_status_type (status, type, nid),
+  KEY nid (nid)
 )
 DEFAULT CHARACTER SET utf8;
 
@@ -678,7 +679,7 @@ DEFAULT CHARACTER SET utf8;
 --
 
 CREATE TABLE node_counter (
-  nid int(11) NOT NULL default '0',
+  nid int(10) NOT NULL default '0',
   totalcount bigint(20) unsigned NOT NULL default '0',
   daycount mediumint(8) unsigned NOT NULL default '0',
   timestamp int(11) unsigned NOT NULL default '0',
diff --git a/database/updates.inc b/database/updates.inc
index 83b23aff38ab..658f7103d691 100644
--- a/database/updates.inc
+++ b/database/updates.inc
@@ -1954,3 +1954,22 @@ function system_update_179() {
 
   return array();
 }
+
+function system_update_180() {
+  $ret = array();
+
+  if ($GLOBALS['db_type'] == 'mysql') {
+    $ret[] = update_sql("ALTER TABLE {node} DROP PRIMARY KEY");
+    $ret[] = update_sql("ALTER TABLE {node} ADD PRIMARY KEY (nid, vid)");
+    $ret[] = update_sql("ALTER TABLE {node} DROP INDEX vid");
+    $ret[] = update_sql("ALTER TABLE {node} ADD UNIQUE (vid)");
+    $ret[] = update_sql("ALTER TABLE {node} ADD INDEX (nid)");
+
+    $ret[] = update_sql("ALTER TABLE {node_counter} CHANGE nid nid INT(10) NOT NULL DEFAULT '0'");
+  }
+  else { // pgsql
+    // Insert queries here.
+  }
+
+  return $ret;
+}
-- 
GitLab