2004-02-25 22:20:09 +00:00
|
|
|
<?php
|
|
|
|
/* $Id$ */
|
|
|
|
|
|
|
|
// Define the various updates in an array("date : comment" => "function");
|
|
|
|
$sql_updates = array(
|
|
|
|
"2002-06-22: first update since Drupal 4.0.0 release" => "update_32",
|
|
|
|
"2002-07-07" => "update_33",
|
|
|
|
"2002-07-31" => "update_34",
|
|
|
|
"2002-08-10" => "update_35",
|
|
|
|
"2002-08-16" => "update_36",
|
|
|
|
"2002-08-19" => "update_37",
|
|
|
|
"2002-08-26" => "update_38",
|
|
|
|
"2002-09-15" => "update_39",
|
|
|
|
"2002-09-17" => "update_40",
|
|
|
|
"2002-10-13" => "update_41",
|
|
|
|
"2002-10-17" => "update_42",
|
|
|
|
"2002-10-26" => "update_43",
|
|
|
|
"2002-11-08" => "update_44",
|
|
|
|
"2002-11-20" => "update_45",
|
|
|
|
"2002-12-10: first update since Drupal 4.1.0 release" => "update_46",
|
|
|
|
"2002-12-29" => "update_47",
|
|
|
|
"2003-01-03" => "update_48",
|
|
|
|
"2003-01-05" => "update_49",
|
|
|
|
"2003-01-15" => "update_50",
|
|
|
|
"2003-04-19" => "update_51",
|
|
|
|
"2003-04-20" => "update_52",
|
|
|
|
"2003-05-18" => "update_53",
|
|
|
|
"2003-05-24" => "update_54",
|
|
|
|
"2003-05-31" => "update_55",
|
|
|
|
"2003-06-04" => "update_56",
|
|
|
|
"2003-06-08" => "update_57",
|
|
|
|
"2003-06-08: first update since Drupal 4.2.0 release" => "update_58",
|
|
|
|
"2003-08-05" => "update_59",
|
|
|
|
"2003-08-15" => "update_60",
|
|
|
|
"2003-08-20" => "update_61",
|
|
|
|
"2003-08-27" => "update_62",
|
|
|
|
"2003-09-09" => "update_63",
|
|
|
|
"2003-09-10" => "update_64",
|
|
|
|
"2003-09-29" => "update_65",
|
|
|
|
"2003-09-30" => "update_66",
|
|
|
|
"2003-10-11" => "update_67",
|
|
|
|
"2003-10-20" => "update_68",
|
|
|
|
"2003-10-22" => "update_69",
|
|
|
|
"2003-10-27" => "update_70",
|
|
|
|
"2003-11-17: first update since Drupal 4.3.0 release" => "update_71",
|
|
|
|
"2003-11-27" => "update_72",
|
|
|
|
"2003-12-03" => "update_73",
|
|
|
|
"2003-12-06" => "update_74",
|
|
|
|
"2004-01-06" => "update_75",
|
|
|
|
"2004-01-11" => "update_76",
|
|
|
|
"2004-01-13" => "update_77",
|
|
|
|
"2004-02-03" => "update_78",
|
2004-03-11 20:33:59 +00:00
|
|
|
"2004-02-21" => "update_79",
|
2004-03-20 19:41:42 +00:00
|
|
|
"2004-03-11: first update since Drupal 4.4.0 release" => "update_80",
|
2004-03-27 14:50:56 +00:00
|
|
|
"2004-02-20" => "update_81",
|
2004-04-15 20:49:42 +00:00
|
|
|
"2004-02-27" => "update_82",
|
2004-04-24 16:42:39 +00:00
|
|
|
"2004-04-15" => "update_83",
|
2004-04-27 20:10:09 +00:00
|
|
|
"2004-04-21" => "update_84",
|
2004-05-10 20:34:25 +00:00
|
|
|
"2004-04-27" => "update_85",
|
2004-05-18 18:41:46 +00:00
|
|
|
"2004-05-10" => "update_86",
|
2004-06-18 15:04:37 +00:00
|
|
|
"2004-05-18" => "update_87",
|
2004-06-19 10:39:36 +00:00
|
|
|
"2004-06-11" => "update_88",
|
2004-06-27 19:10:52 +00:00
|
|
|
"2004-06-18" => "update_89",
|
2004-06-30 07:26:02 +00:00
|
|
|
"2004-06-27" => "update_90",
|
2004-07-08 19:22:48 +00:00
|
|
|
"2004-06-30" => "update_91",
|
2004-07-11 06:53:39 +00:00
|
|
|
"2004-07-07" => "update_92",
|
2004-07-11 07:19:22 +00:00
|
|
|
"2004-07-11" => "update_93",
|
2004-02-25 22:20:09 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
function update_32() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE users ADD index (sid(4))");
|
|
|
|
$ret[] = update_sql("ALTER TABLE users ADD index (timestamp)");
|
|
|
|
$ret[] = update_sql("ALTER TABLE users ADD UNIQUE KEY name (name)");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_33() {
|
|
|
|
$ret = array();
|
|
|
|
$result = db_query("SELECT * FROM variable WHERE value NOT LIKE 's:%;'");
|
|
|
|
// NOTE: the "WHERE"-part of the query above avoids variables to get serialized twice.
|
|
|
|
while ($variable = db_fetch_object($result)) {
|
|
|
|
variable_set($variable->name, $variable->value);
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_34() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE feed MODIFY refresh int(10) NOT NULL default '0'");
|
|
|
|
$ret[] = update_sql("ALTER TABLE feed MODIFY timestamp int (10) NOT NULL default '0'");
|
|
|
|
$ret[] = update_sql("ALTER TABLE users CHANGE session session TEXT");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_35() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE poll_choices ADD INDEX (nid)");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_36() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE rating CHANGE old previous int(6) NOT NULL default '0'");
|
|
|
|
$ret[] = update_sql("ALTER TABLE rating CHANGE new current int(6) NOT NULL default '0'");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_37() {
|
|
|
|
$ret = array();
|
|
|
|
|
|
|
|
$ret[] = update_sql("DROP TABLE IF EXISTS sequences");
|
|
|
|
|
|
|
|
$ret[] = update_sql("CREATE TABLE sequences (
|
|
|
|
name VARCHAR(255) NOT NULL PRIMARY KEY,
|
|
|
|
id INT UNSIGNED NOT NULL
|
|
|
|
) TYPE=MyISAM");
|
|
|
|
|
|
|
|
if ($max = db_result(db_query("SELECT MAX(nid) FROM node"))) {
|
|
|
|
$ret[] = update_sql("REPLACE INTO sequences VALUES ('node', $max)");
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($max = db_result(db_query("SELECT MAX(cid) FROM comments"))) {
|
|
|
|
$ret[] = update_sql("REPLACE INTO sequences VALUES ('comments', $max)");
|
|
|
|
}
|
|
|
|
// NOTE: move the comments bit down as soon as we switched to use the new comment module!
|
|
|
|
|
|
|
|
if ($max = db_result(db_query("SELECT MAX(tid) FROM term_data"))) {
|
|
|
|
$ret[] = update_sql("REPLACE INTO sequences VALUES ('term_data', $max)");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_38() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE watchdog CHANGE message message text NOT NULL default ''");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_39() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("DROP TABLE moderate");
|
|
|
|
|
|
|
|
$ret[] = update_sql("ALTER TABLE comments ADD score MEDIUMINT NOT NULL");
|
|
|
|
$ret[] = update_sql("ALTER TABLE comments ADD status TINYINT UNSIGNED NOT NULL");
|
|
|
|
$ret[] = update_sql("ALTER TABLE comments ADD users MEDIUMTEXT");
|
|
|
|
|
|
|
|
$ret[] = update_sql("CREATE TABLE moderation_votes (
|
|
|
|
mid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
vote VARCHAR(255),
|
|
|
|
weight TINYINT NOT NULL
|
|
|
|
)");
|
|
|
|
|
|
|
|
$ret[] = update_sql("CREATE TABLE moderation_roles (
|
|
|
|
rid INT UNSIGNED NOT NULL,
|
|
|
|
mid INT UNSIGNED NOT NULL,
|
|
|
|
value TINYINT NOT NULL
|
|
|
|
)");
|
|
|
|
|
|
|
|
$ret[] = update_sql("ALTER TABLE moderation_roles ADD INDEX (rid)");
|
|
|
|
$ret[] = update_sql("ALTER TABLE moderation_roles ADD INDEX (mid)");
|
|
|
|
|
|
|
|
$ret[] = update_sql("CREATE TABLE moderation_filters (
|
|
|
|
fid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
filter VARCHAR(255) NOT NULL,
|
|
|
|
minimum SMALLINT NOT NULL
|
|
|
|
)");
|
|
|
|
|
|
|
|
$ret[] = update_sql("DELETE FROM moderation_votes");
|
|
|
|
$ret[] = update_sql("INSERT INTO moderation_votes VALUES (1, '+1', 0)");
|
|
|
|
$ret[] = update_sql("INSERT INTO moderation_votes VALUES (2, '-1', 1)");
|
|
|
|
|
|
|
|
$ret[] = update_sql("DELETE FROM moderation_roles");
|
|
|
|
$ret[] = update_sql("INSERT INTO moderation_roles VALUES (2, 1, 1)");
|
|
|
|
$ret[] = update_sql("INSERT INTO moderation_roles VALUES (2, 2, -1)");
|
|
|
|
|
|
|
|
$ret[] = update_sql("CREATE TABLE forum (
|
|
|
|
nid int unsigned not null primary key,
|
|
|
|
icon varchar(255) not null,
|
|
|
|
shadow int unsigned not null
|
|
|
|
)");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_40() {
|
|
|
|
$ret = array();
|
|
|
|
if ($max = db_result(db_query("SELECT MAX(cid) FROM comments"))) {
|
|
|
|
$ret[] = update_sql("REPLACE INTO sequences VALUES ('comments', $max)");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_41() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("CREATE TABLE statistics (
|
|
|
|
nid int(11) NOT NULL,
|
|
|
|
totalcount bigint UNSIGNED DEFAULT '0' NOT NULL,
|
|
|
|
daycount mediumint UNSIGNED DEFAULT '0' NOT NULL,
|
|
|
|
timestamp int(11) UNSIGNED DEFAULT '0' NOT NULL,
|
|
|
|
PRIMARY KEY (nid),
|
|
|
|
INDEX (totalcount),
|
|
|
|
INDEX (daycount),
|
|
|
|
INDEX (timestamp)
|
|
|
|
)");
|
|
|
|
|
|
|
|
$ret[] = update_sql("CREATE TABLE accesslog (
|
|
|
|
nid int(11) UNSIGNED DEFAULT '0',
|
|
|
|
url varchar(255),
|
|
|
|
hostname varchar(128),
|
|
|
|
uid int(10) UNSIGNED DEFAULT '0',
|
|
|
|
timestamp int(11) UNSIGNED NOT NULL
|
|
|
|
)");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_42() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("DROP TABLE modules");
|
|
|
|
$ret[] = update_sql("DROP TABLE layout");
|
|
|
|
$ret[] = update_sql("DROP TABLE referrer");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_43() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE blocks DROP remove");
|
|
|
|
$ret[] = update_sql("ALTER TABLE blocks DROP name");
|
|
|
|
$ret[] = update_sql("UPDATE boxes SET type = 0 WHERE type = 1");
|
|
|
|
$ret[] = update_sql("UPDATE boxes SET type = 1 WHERE type = 2");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_44() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("UPDATE system SET filename = CONCAT('modules/', filename) WHERE type = 'module'");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_45() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE page ADD description varchar(128) NOT NULL default ''");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_46() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
$ret[] = update_sql("ALTER TABLE cache ADD created integer");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql("ALTER TABLE cache ADD created int(11) NOT NULL default '0'");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_47() {
|
|
|
|
$ret = array();
|
|
|
|
if ($max = db_result(db_query("SELECT MAX(vid) FROM vocabulary"))) {
|
|
|
|
$ret[] = update_sql("REPLACE INTO sequences VALUES ('vocabulary', $max)");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_48() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE watchdog ADD link varchar(255) DEFAULT '' NULL");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_49() {
|
|
|
|
$ret = array();
|
|
|
|
/*
|
|
|
|
** Make sure the admin module is added to the system table or the
|
|
|
|
** admin menus won't show up.
|
|
|
|
*/
|
|
|
|
|
|
|
|
$ret[] = update_sql("DELETE FROM system WHERE name = 'admin';");
|
|
|
|
$ret[] = update_sql("INSERT INTO system VALUES ('modules/admin.module','admin','module','',1)");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_50() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE forum ADD tid INT UNSIGNED NOT NULL");
|
|
|
|
$result = db_queryd("SELECT n.nid, t.tid FROM node n, term_node t WHERE n.nid = t.nid AND type = 'forum'");
|
|
|
|
while ($node = db_fetch_object($result)) {
|
|
|
|
db_queryd("UPDATE forum SET tid = %d WHERE nid = %d", $node->tid, $node->nid);
|
|
|
|
}
|
|
|
|
$ret[] = update_sql("ALTER TABLE forum ADD INDEX (tid)");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_51() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE blocks CHANGE delta delta varchar(32) NOT NULL default '0'");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_52() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("UPDATE sequences SET name = 'comments_cid' WHERE name = 'comments';");
|
|
|
|
$ret[] = update_sql("UPDATE sequences SET name = 'node_nid' WHERE name = 'node';");
|
|
|
|
|
|
|
|
$ret[] = update_sql("DELETE FROM sequences WHERE name = 'import'");
|
|
|
|
$ret[] = update_sql("DELETE FROM sequences WHERE name = 'bundle_bid'"); // in case we would run this entry twice
|
|
|
|
$ret[] = update_sql("DELETE FROM sequences WHERE name = 'feed_fid'"); // in case we would run this entry twice
|
|
|
|
|
|
|
|
$bundles = db_result(db_query("SELECT MAX(bid) FROM bundle;"));
|
|
|
|
$ret[] = update_sql("INSERT INTO sequences (name, id) VALUES ('bundle_bid', '$bundles')");
|
|
|
|
|
|
|
|
$feeds = db_result(db_query("SELECT MAX(fid) FROM feed;"));
|
|
|
|
$ret[] = update_sql("INSERT INTO sequences (name, id) VALUES ('feed_fid', '$feeds')");
|
|
|
|
|
|
|
|
$ret[] = update_sql("UPDATE sequences SET name = 'vocabulary_vid' WHERE name = 'vocabulary';");
|
|
|
|
|
|
|
|
$ret[] = update_sql("UPDATE sequences SET name = 'term_data_tid' WHERE name = 'term_data'");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_53() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("CREATE INDEX book_parent ON book(parent);");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_54() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE locales CHANGE string string BLOB DEFAULT '' NOT NULL");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_55() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE site ADD checked INT(11) NOT NULL;");
|
|
|
|
$ret[] = update_sql("ALTER TABLE site CHANGE timestamp changed INT(11) NOT NULL;");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_56() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE vocabulary CHANGE types nodes TEXT DEFAULT '' NOT NULL");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_57() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("DELETE FROM variable WHERE name = 'site_charset'");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_58() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} ADD path varchar(250) NULL");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} ALTER COLUMN path SET DEFAULT ''");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} ADD path varchar(250) NULL default ''");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_59() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {comments} ADD thread VARCHAR(255)");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {comments} ALTER COLUMN thread SET NOT NULL");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {comments} ADD thread VARCHAR(255) NOT NULL");
|
|
|
|
}
|
|
|
|
|
|
|
|
$result = db_query("SELECT DISTINCT(nid) FROM {comments} WHERE thread = ''");
|
|
|
|
|
|
|
|
while ($node = db_fetch_object($result)) {
|
|
|
|
$result2 = db_query("SELECT cid, pid FROM {comments} where nid = '%d' ORDER BY timestamp", $node->nid);
|
|
|
|
$comments = array();
|
|
|
|
while ($comment = db_fetch_object($result2)) {
|
|
|
|
$comments[$comment->cid] = $comment;
|
|
|
|
}
|
|
|
|
|
|
|
|
$structure = array();
|
|
|
|
$structure = _update_thread_structure($comments, 0, -1, $structure);
|
|
|
|
|
|
|
|
foreach ($structure as $cid => $thread) {
|
|
|
|
$new_parts = array();
|
|
|
|
foreach(explode(".", $thread) as $part) {
|
|
|
|
if ($part > 9) {
|
|
|
|
$start = substr($part, 0, strlen($part) - 1);
|
|
|
|
$end = substr($part, -1, 1);
|
|
|
|
|
|
|
|
$new_parts[] = str_repeat("9", $start).$end;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$new_parts[] = $part;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$thread = implode(".", $new_parts);
|
|
|
|
|
|
|
|
db_query("UPDATE {comments} SET thread = '%s' WHERE cid = '%d'", $thread."/", $comments[$cid]->cid);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function _update_thread_structure($comments, $pid, $depth, $structure) {
|
|
|
|
$ret = array();
|
|
|
|
$depth++;
|
|
|
|
|
|
|
|
foreach ($comments as $key => $comment) {
|
|
|
|
if ($comment->pid == $pid) {
|
|
|
|
if ($structure[$comment->pid]) {
|
|
|
|
$structure[$comment->cid] = $structure[$comment->pid]."."._update_next_thread($structure, $structure[$comment->pid]);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$structure[$comment->cid] = _update_next_thread($structure, "");
|
|
|
|
}
|
|
|
|
|
|
|
|
$structure = _update_thread_structure($comments, $comment->cid, $depth, $structure);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return $structure;
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_60() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE {forum} DROP icon");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_61() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
$ret[] = update_sql("CREATE TABLE {sessions} (
|
|
|
|
uid integer NOT NULL,
|
|
|
|
sid varchar(32) NOT NULL default '',
|
|
|
|
hostname varchar(128) NOT NULL default '',
|
|
|
|
timestamp integer NOT NULL default '0',
|
|
|
|
session text,
|
|
|
|
PRIMARY KEY (sid)
|
|
|
|
);");
|
|
|
|
|
|
|
|
$ret[] = update_sql("ALTER TABLE {users} DROP session;");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {users} DROP hostname;");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {users} DROP sid;");
|
|
|
|
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql("CREATE TABLE IF NOT EXISTS {sessions} (
|
|
|
|
uid int(10) unsigned NOT NULL,
|
|
|
|
sid varchar(32) NOT NULL default '',
|
|
|
|
hostname varchar(128) NOT NULL default '',
|
|
|
|
timestamp int(11) NOT NULL default '0',
|
|
|
|
session text,
|
|
|
|
KEY uid (uid),
|
|
|
|
KEY sid (sid(4)),
|
|
|
|
KEY timestamp (timestamp)
|
|
|
|
)");
|
|
|
|
|
|
|
|
$ret[] = update_sql("ALTER TABLE {users} DROP session;");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {users} DROP hostname;");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {users} DROP sid;");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_62() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
$ret[] = update_sql("CREATE INDEX accesslog_timestamp ON {accesslog} (timestamp)");
|
|
|
|
|
|
|
|
$ret[] = update_sql("DROP INDEX node_type_idx");
|
|
|
|
$ret[] = update_sql("DROP INDEX node_title_idx");
|
|
|
|
$ret[] = update_sql("DROP INDEX node_promote_idx");
|
|
|
|
|
|
|
|
$ret[] = update_sql("CREATE INDEX node_type ON {node} (type)");
|
|
|
|
$ret[] = update_sql("CREATE INDEX node_title_type ON {node} (title,type)");
|
|
|
|
$ret[] = update_sql("CREATE INDEX node_moderate ON {node} (moderate)");
|
|
|
|
$ret[] = update_sql("CREATE INDEX node_path ON {node} (path)");
|
|
|
|
$ret[] = update_sql("CREATE INDEX node_promote_status ON {node} (promote, status)");
|
|
|
|
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {accesslog} ADD INDEX accesslog_timestamp (timestamp)");
|
|
|
|
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} DROP INDEX type");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} DROP INDEX title");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} DROP INDEX promote");
|
|
|
|
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} ADD INDEX node_type (type(4))");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} ADD INDEX node_title_type (title,type(4))");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} ADD INDEX node_moderate (moderate)");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} ADD INDEX node_path (path(5))");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} ADD INDEX node_promote_status (promote, status)");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function _update_next_thread($structure, $parent) {
|
|
|
|
$ret = array();
|
|
|
|
do {
|
|
|
|
$val++;
|
|
|
|
if ($parent) {
|
|
|
|
$thread = "$parent.$val";
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$thread = $val;
|
|
|
|
}
|
|
|
|
|
|
|
|
} while (array_search($thread, $structure));
|
|
|
|
|
|
|
|
return $val;
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_63() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
$ret[] = update_sql("INSERT INTO {users} (uid, name, mail, timestamp) VALUES ('0', '', '', '". time() ."')");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {users} CHANGE uid uid int(10) unsigned NOT NULL default '0'");
|
|
|
|
$ret[] = update_sql("INSERT INTO {users} (uid, name, mail, timestamp) VALUES ('0', '', '', '". time() ."')");
|
|
|
|
$users = db_result(db_query("SELECT MAX(uid) FROM {users};"));
|
|
|
|
$ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('users_uid', '$users')");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_64() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("UPDATE {users} SET rid = 1 WHERE uid = 0");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_65() {
|
|
|
|
$ret = array();
|
|
|
|
// PostgreSQL-only update.
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
$ret[] = update_sql("CREATE FUNCTION \"rand\"() RETURNS float AS '
|
|
|
|
BEGIN
|
|
|
|
RETURN random();
|
|
|
|
END;' LANGUAGE 'plpgsql'");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_66() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
$ret[] = update_sql("CREATE TABLE {path} (
|
|
|
|
pid serial,
|
|
|
|
src varchar(128) NOT NULL default '',
|
|
|
|
dst varchar(128) NOT NULL default '',
|
|
|
|
PRIMARY KEY (pid)
|
|
|
|
)");
|
|
|
|
$ret[] = update_sql("CREATE INDEX path_src_idx ON {path}(src)");
|
|
|
|
$ret[] = update_sql("CREATE INDEX path_dst_idx ON {path}(dst)");
|
|
|
|
$result = db_query("SELECT nid, path FROM {node} WHERE path != ''");
|
|
|
|
while ($node = db_fetch_object($result)) {
|
|
|
|
$ret[] = update_sql("INSERT INTO {path} (src, dst) VALUES ('node/view/$node->nid', '". check_query($node->path) ."')");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql("CREATE TABLE {path} (
|
|
|
|
pid int(10) unsigned NOT NULL auto_increment,
|
|
|
|
src varchar(128) NOT NULL default '',
|
|
|
|
dst varchar(128) NOT NULL default '',
|
|
|
|
PRIMARY KEY (pid),
|
|
|
|
UNIQUE KEY src (src),
|
|
|
|
UNIQUE KEY dst (dst)
|
|
|
|
)");
|
|
|
|
// Migrate the existing paths:
|
|
|
|
$result = db_query("SELECT nid, path FROM {node} WHERE path != ''");
|
|
|
|
while ($node = db_fetch_object($result)) {
|
|
|
|
$ret[] = update_sql("INSERT INTO {path} (src, dst) VALUES ('node/view/$node->nid', '". check_query($node->path) ."')");
|
|
|
|
}
|
|
|
|
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} DROP path");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_67() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
// Taking no action. PostgreSQL is not always capable of dropping columns.
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {users} DROP homepage");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_68() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
// Unneccesary. The PostgreSQL port was already using a sequence.
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$max = db_result(db_query("SELECT MAX(aid) FROM {access};"));
|
|
|
|
$ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('access_aid', '$max')");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {access} CHANGE aid aid tinyint(10) NOT NULL ");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_69() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
/* Rename the statistics table to node_counter */
|
|
|
|
$ret[] = update_sql("ALTER TABLE {statistics} RENAME TO {node_counter}");
|
|
|
|
$ret[] = update_sql("DROP INDEX {statistics}_totalcount_idx");
|
|
|
|
$ret[] = update_sql("DROP INDEX {statistics}_daycount_idx");
|
|
|
|
$ret[] = update_sql("DROP INDEX {statistics}_timestamp_idx");
|
|
|
|
$ret[] = update_sql("CREATE INDEX {node_counter}_totalcount_idx ON {node_counter}(totalcount)");
|
|
|
|
$ret[] = update_sql("CREATE INDEX {node_counter}_daycount_idx ON {node_counter}(daycount)");
|
|
|
|
$ret[] = update_sql("CREATE INDEX {node_counter}_timestamp_idx ON {node_counter}(timestamp)");
|
|
|
|
|
|
|
|
/* Rename the path table to url_alias */
|
|
|
|
$ret[] = update_sql("ALTER TABLE {path} RENAME TO {url_alias}");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {path}_pid_seq RENAME TO {url_alias}_pid_seq");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {statistics} RENAME TO {node_counter}");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {path} RENAME TO {url_alias}");
|
|
|
|
$ret[] = update_sql("UPDATE {sequences} SET name = '{url_alias}_pid' WHERE name = '{path}_pid'");
|
|
|
|
}
|
|
|
|
|
|
|
|
$ret[] = update_sql("UPDATE {users} SET name = '' WHERE uid = 0;");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_70() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE {variable} CHANGE name name varchar(48) NOT NULL");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_71() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {system} ADD bootstrap integer");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {system} ADD bootstrap int(2)");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_72() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {blocks} ADD throttle smallint");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {blocks} ALTER COLUMN throttle SET DEFAULT '0'");
|
|
|
|
$ret[] = update_sql("UPDATE {blocks} SET throttle = 0");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {blocks} ALTER COLUMN throttle SET NOT NULL");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {blocks} ADD throttle tinyint(1) NOT NULL DEFAULT '0'");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_73() {
|
|
|
|
$ret = array();
|
|
|
|
/* MySQL only update */
|
|
|
|
if ($GLOBALS["db_type"] == "mysql") {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {book} CHANGE log log longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {boxes} CHANGE body body longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {cache} CHANGE data data longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {comments} CHANGE comment comment longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {comments} CHANGE users users longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {directory} CHANGE slogan slogan longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {directory} CHANGE mission mission longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {feed} CHANGE description description longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {item} CHANGE description description longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} CHANGE users users longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} CHANGE teaser teaser longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} CHANGE body body longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} CHANGE revisions revisions longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {permission} CHANGE perm perm longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {poll} CHANGE voters voters longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {sessions} CHANGE session session longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {term_data} CHANGE description description longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {users} CHANGE data data longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {variable} CHANGE value value longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {vocabulary} CHANGE description description longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {vocabulary} CHANGE nodes nodes longtext");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {watchdog} CHANGE message message longtext");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_74() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {system} ADD throttle smallint");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {system} ALTER COLUMN throttle SET DEFAULT '0'");
|
|
|
|
$ret[] = update_sql("UPDATE {system} SET throttle = 0");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {system} ALTER COLUMN throttle SET NOT NULL");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {system} ADD throttle tinyint(1) NOT NULL DEFAULT '0'");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_75() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {feed} ADD etag text");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {feed} ALTER COLUMN etag SET DEFAULT ''");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {feed} ALTER COLUMN etag SET NOT NULL");
|
|
|
|
|
|
|
|
$ret[] = update_sql("ALTER TABLE {feed} ADD modified integer");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {feed} ALTER COLUMN modified SET DEFAULT '0'");
|
|
|
|
$ret[] = update_sql("UPDATE {feed} SET modified = 0");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {feed} ALTER COLUMN modified SET NOT NULL");
|
|
|
|
|
|
|
|
$ret[] = update_sql("ALTER TABLE {feed} RENAME timestamp TO checked");
|
|
|
|
|
|
|
|
$ret[] = update_sql("UPDATE {blocks} SET module = 'aggregator' WHERE module = 'import'");
|
|
|
|
$ret[] = update_sql("UPDATE {system} SET filename = 'modules/aggregator.module', name = 'aggregator' WHERE filename = 'modules/import.module'");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {feed} ADD etag varchar(255) NOT NULL DEFAULT ''");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {feed} ADD modified int(10) NOT NULL DEFAULT 0");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {feed} CHANGE timestamp checked int(10) NOT NULL DEFAULT 0");
|
|
|
|
$ret[] = update_sql("UPDATE {blocks} SET module = 'aggregator' WHERE module = 'import'");
|
|
|
|
$ret[] = update_sql("UPDATE {system} SET filename = 'modules/aggregator.module', name = 'aggregator' WHERE filename = 'modules/import.module'");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_76() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {feed} ADD image text");
|
|
|
|
} else {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {feed} ADD image longtext");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_77() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE {cache} ADD headers text");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_78() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "mysql") {
|
|
|
|
$ret[] = update_sql("CREATE TABLE {filters} (
|
|
|
|
module varchar(64) NOT NULL default '',
|
|
|
|
weight tinyint(2) DEFAULT '0' NOT NULL,
|
2004-04-24 07:50:39 +00:00
|
|
|
KEY module (module)
|
2004-02-25 22:20:09 +00:00
|
|
|
)");
|
|
|
|
}
|
|
|
|
else {
|
2004-04-13 18:04:36 +00:00
|
|
|
$ret[] = update_sql("CREATE TABLE {filters} (
|
|
|
|
module varchar(64) NOT NULL DEFAULT '',
|
|
|
|
weight smallint NOT NULL DEFAULT 0
|
|
|
|
);");
|
|
|
|
$ret[] = update_sql("CREATE INDEX {filters_weight} ON {filters} (weight);");
|
2004-02-25 22:20:09 +00:00
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_79() {
|
|
|
|
$ret = array();
|
|
|
|
// Works for both mysql and postgresql
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} DROP attributes");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {comments} DROP link");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
2004-03-11 20:33:59 +00:00
|
|
|
function update_80() {
|
|
|
|
|
|
|
|
|
|
|
|
|
2004-05-03 05:41:21 +00:00
|
|
|
if ($GLOBALS["db_type"] == "mysql") {
|
|
|
|
// Add a 'created' field to the users table:
|
|
|
|
$ret[] = update_sql('ALTER TABLE {users} ADD created INT(11) NOT NULL');
|
|
|
|
$ret[] = update_sql('ALTER TABLE {users} CHANGE timestamp changed INT(11) NOT NULL');
|
2004-03-11 20:33:59 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2004-05-03 05:41:21 +00:00
|
|
|
// Add profile module related tables:
|
|
|
|
$ret[] = update_sql("CREATE TABLE {profile_fields} (
|
2004-03-11 20:33:59 +00:00
|
|
|
fid int(10) NOT NULL auto_increment,
|
|
|
|
title varchar(255) default NULL,
|
|
|
|
name varchar(128) default NULL,
|
|
|
|
explanation TEXT default NULL,
|
|
|
|
category varchar(255) default NULL,
|
|
|
|
type varchar(128) default NULL,
|
|
|
|
weight tinyint(1) DEFAULT '0' NOT NULL,
|
|
|
|
overview tinyint(1) DEFAULT '0' NOT NULL,
|
|
|
|
options text,
|
|
|
|
KEY category (category),
|
|
|
|
UNIQUE KEY name (name),
|
|
|
|
PRIMARY KEY (fid)
|
|
|
|
);");
|
|
|
|
|
2004-05-03 05:41:21 +00:00
|
|
|
$ret[] = update_sql("CREATE TABLE {profile_values} (
|
2004-03-11 20:33:59 +00:00
|
|
|
fid int(11) unsigned default '0',
|
|
|
|
uid int(11) unsigned default '0',
|
|
|
|
value text,
|
|
|
|
KEY uid (uid),
|
|
|
|
KEY fid (fid)
|
|
|
|
);");
|
2004-05-03 05:41:21 +00:00
|
|
|
// Add some indices to speed up the update process:
|
|
|
|
$ret[] = update_sql('ALTER TABLE {comments} ADD index (timestamp)');
|
|
|
|
$ret[] = update_sql('ALTER TABLE {node} ADD index (created)');
|
|
|
|
// Assign everyone a created timestamp to begin with:
|
|
|
|
$ret[] = update_sql("UPDATE {users} SET created = changed WHERE created = ''");
|
|
|
|
|
|
|
|
}
|
|
|
|
else {// pgsql
|
|
|
|
|
|
|
|
$ret[] = update_sql('ALTER TABLE {users} RENAME timestamp TO changed');
|
|
|
|
$ret[] = update_sql('ALTER TABLE {users} ADD created integer');
|
|
|
|
$ret[] = update_sql('UPDATE {users} SET created = 0');
|
|
|
|
$ret[] = update_sql('ALTER TABLE {users} ALTER COLUMN created SET NOT NULL');
|
|
|
|
$ret[] = update_sql('ALTER TABLE {users} ALTER COLUMN created SET DEFAULT 0');
|
|
|
|
// Add profile module related tables:
|
|
|
|
$ret[] = update_sql("CREATE TABLE {profile_fields} (
|
|
|
|
fid serial,
|
|
|
|
title varchar(255) default NULL,
|
|
|
|
name varchar(128) default NULL,
|
|
|
|
explanation TEXT default NULL,
|
|
|
|
category varchar(255) default NULL,
|
|
|
|
type varchar(128) default NULL,
|
|
|
|
weight smallint DEFAULT '0' NOT NULL,
|
|
|
|
overview smallint DEFAULT '0' NOT NULL,
|
|
|
|
options text,
|
|
|
|
UNIQUE (name),
|
|
|
|
PRIMARY KEY (fid)
|
|
|
|
);");
|
|
|
|
$ret[] = update_sql("CREATE INDEX profile_fields_category ON {profile_fields} (category);");
|
|
|
|
$ret[] = update_sql("CREATE TABLE {profile_values} (
|
|
|
|
fid integer default '0',
|
|
|
|
uid integer default '0',
|
|
|
|
value text
|
|
|
|
);");
|
|
|
|
$ret[] = update_sql("CREATE INDEX profile_values_uid ON profile_values (uid);");
|
|
|
|
$ret[] = update_sql("CREATE INDEX profile_values_fid ON profile_values (fid);");
|
|
|
|
|
|
|
|
// Add some indices to speed up the update process:
|
|
|
|
$ret[] = update_sql('CREATE INDEX comments_timestamp ON {comments} (timestamp)');
|
|
|
|
$ret[] = update_sql('CREATE INDEX node_created on {node} (created)');
|
|
|
|
// Assign everyone a created timestamp to begin with:
|
|
|
|
$ret[] = update_sql("UPDATE {users} SET created = changed WHERE created = 0");
|
|
|
|
|
|
|
|
}
|
2004-03-11 20:33:59 +00:00
|
|
|
|
2004-05-03 05:41:21 +00:00
|
|
|
|
|
|
|
// Print a status message:"
|
|
|
|
print '<p>Note: this might take a while ...</p>';
|
|
|
|
|
|
|
|
// Try updating the user records using the comment table:
|
|
|
|
$result = db_query('SELECT DISTINCT(u.uid) FROM {comments} c LEFT JOIN {users} u ON c.uid = u.uid WHERE c.timestamp < u.created');
|
2004-03-11 20:33:59 +00:00
|
|
|
while ($account = db_fetch_object($result)) {
|
2004-05-03 05:41:21 +00:00
|
|
|
// Retrieve the proper timestamp:
|
|
|
|
$timestamp = db_result(db_query('SELECT MIN(timestamp) FROM {comments} WHERE uid = %d', $account->uid));
|
|
|
|
// Try updating the user records using the node table:
|
|
|
|
$result = db_query('SELECT DISTINCT(u.uid) FROM {node} n LEFT JOIN {users} u ON n.uid = u.uid WHERE n.created < u.created');
|
|
|
|
while ($account = db_fetch_object($result)) {
|
|
|
|
// Retrieve the proper timestamp:
|
|
|
|
$timestamp = db_result(db_query('SELECT MIN(created) FROM {node} WHERE uid = %d', $account->uid));
|
|
|
|
|
|
|
|
// Update this user record as well as older records with an older timestamp:
|
|
|
|
db_query('UPDATE {users} SET created = %d WHERE created > %d AND uid <= %d', $timestamp, $timestamp, $account->uid);
|
|
|
|
}
|
2004-03-11 20:33:59 +00:00
|
|
|
|
2004-05-03 05:41:21 +00:00
|
|
|
// Update this user record as well as older records with an older timestamp:
|
|
|
|
db_query('UPDATE {users} SET created = %d WHERE created > %d AND uid <= %d', $timestamp, $timestamp, $account->uid);
|
2004-03-11 20:33:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2004-05-03 05:41:21 +00:00
|
|
|
// Migrate the old profile data to the new scheme:
|
|
|
|
$fields = array(
|
|
|
|
array("Name", "realname", "textfield", NULL, 0),
|
|
|
|
array("Address", "address", "textfield", NULL, 0),
|
|
|
|
array("City", "city", "textfield", NULL, 0),
|
|
|
|
array("State, province or region", "state", "textfield", NULL, 0),
|
|
|
|
array("Zip or postal code", "zip", "textfield", NULL, 0),
|
|
|
|
array("Country", "country", "textfield", NULL, 1),
|
|
|
|
array("Gender", "gender", "selection", "male\nfemale", 1),
|
|
|
|
array("Job title", "job", "textfield", NULL, 0),
|
|
|
|
array("ICQ messenger ID", "icq", "textfield", NULL, 0),
|
|
|
|
array("MSN messenger ID", "msn", "textfield", NULL, 0),
|
|
|
|
array("Yahoo messenger ID", "yahoo", "textfield", NULL, 0),
|
|
|
|
array("AIM messenger ID", "aim", "textfield", NULL, 0),
|
|
|
|
array("URL of homepage", "homepage", "url", NULL, 1),
|
|
|
|
array("Biography", "biography", "textarea", NULL, 0),
|
|
|
|
array("Interests", "interests", "textarea", NULL, 0),
|
|
|
|
array("Public key", "publickey", "textarea", NULL, 0)
|
|
|
|
);
|
|
|
|
|
|
|
|
// Remove existing data (debug mode):
|
|
|
|
db_query('DELETE FROM {profile_fields}');
|
|
|
|
db_query('DELETE FROM {profile_values}');
|
|
|
|
|
|
|
|
foreach ($fields as $field) {
|
|
|
|
db_query("INSERT INTO {profile_fields} (title, name, type, category, options, overview) VALUES ('%s', '%s', '%s', 'Personal information', '%s', %d)", $field[0], $field[1], $field[2], $field[3], $field[4]);
|
|
|
|
}
|
|
|
|
if ($GLOBALS["db_type"] == "mysql") {
|
|
|
|
|
|
|
|
db_query("ALTER TABLE {users} ADD picture varchar(255) NOT NULL DEFAULT ''");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
db_query("ALTER TABLE {users} ADD picture varchar(255)");
|
|
|
|
db_query("UPDATE {users} SET picture = ''");
|
|
|
|
db_query("ALTER TABLE {users} ALTER COLUMN picture SET NOT NULL");
|
|
|
|
db_query("ALTER TABLE {users} ALTER COLUMN picture SET DEFAULT ''");
|
2004-03-11 20:33:59 +00:00
|
|
|
}
|
|
|
|
|
2004-05-03 05:41:21 +00:00
|
|
|
$result = db_query("SELECT uid FROM {users}");
|
|
|
|
while ($account = db_fetch_object($result)) {
|
|
|
|
// Load the user record:
|
|
|
|
$account = user_load(array('uid' => $account->uid));
|
|
|
|
$edit = array();
|
|
|
|
|
|
|
|
// Modify the user record:
|
|
|
|
foreach ($fields as $field) {
|
|
|
|
$old = "profile_". $field[1];
|
|
|
|
$new = $field[1];
|
|
|
|
if ($account->$old) {
|
|
|
|
$edit[$new] = $account->$old;
|
2004-03-11 20:33:59 +00:00
|
|
|
}
|
2004-05-03 05:41:21 +00:00
|
|
|
unset($account->$old);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Gender specific changes:
|
|
|
|
if ($edit['gender'] == 'f') $edit['gender'] = 'female';
|
|
|
|
if ($edit['gender'] == 'm') $edit['gender'] = 'male';
|
|
|
|
|
|
|
|
// Avatar specific changes:
|
|
|
|
if ($account->profile_avatar) {
|
|
|
|
$edit['picture'] = $account->profile_avatar;
|
|
|
|
}
|
|
|
|
unset($account->profile_avatar);
|
|
|
|
|
|
|
|
// Save the update record:
|
|
|
|
user_save($account, $edit);
|
|
|
|
}
|
2004-03-21 10:28:10 +00:00
|
|
|
|
2004-03-20 19:41:42 +00:00
|
|
|
return $ret;
|
2004-03-11 20:33:59 +00:00
|
|
|
}
|
|
|
|
|
2004-03-20 19:41:42 +00:00
|
|
|
function update_81() {
|
2004-05-03 05:41:21 +00:00
|
|
|
if ($GLOBALS['db_type'] == 'mysql') {
|
|
|
|
$ret[] = update_sql('ALTER TABLE {profile_fields} ADD page varchar(255) default NULL');
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql('ALTER TABLE {profile_fields} ADD page varchar(255)');
|
|
|
|
$ret[] = update_sql('ALTER TABLE {profile_fields} ALTER COLUMN page SET default NULL');
|
|
|
|
}
|
2004-03-21 10:28:10 +00:00
|
|
|
$ret[] = update_sql("UPDATE {profile_fields} SET type = 'url' WHERE name = 'homepage'");
|
2004-03-20 19:41:42 +00:00
|
|
|
return $ret;
|
|
|
|
}
|
2004-03-21 10:28:10 +00:00
|
|
|
|
2004-03-27 14:50:56 +00:00
|
|
|
function update_82() {
|
2004-05-03 05:41:21 +00:00
|
|
|
if ($GLOBALS['db_type'] == 'mysql') {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {profile_fields} ADD required tinyint(1) DEFAULT '0' NOT NULL");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {profile_fields} ADD required smallint");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {profile_fields} ALTER COLUMN required SET DEFAULT '0'");
|
|
|
|
$ret[] = update_sql("UPDATE {profile_fields} SET required = '0'");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {profile_fields} ALTER COLUMN required SET NOT NULL");
|
|
|
|
}
|
2004-03-27 14:50:56 +00:00
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
2004-04-15 20:49:42 +00:00
|
|
|
function update_83() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "mysql") {
|
2004-05-22 21:28:51 +00:00
|
|
|
$ret[] = update_sql("CREATE TABLE {menu} (
|
2004-04-15 20:49:42 +00:00
|
|
|
mid int(10) unsigned NOT NULL default '0',
|
|
|
|
pid int(10) unsigned NOT NULL default '0',
|
|
|
|
path varchar(255) NOT NULL default '',
|
|
|
|
title varchar(255) NOT NULL default '',
|
|
|
|
weight tinyint(4) NOT NULL default '0',
|
|
|
|
visibility int(1) unsigned NOT NULL default '0',
|
|
|
|
status int(1) unsigned NOT NULL default '0',
|
|
|
|
PRIMARY KEY (mid)
|
|
|
|
);");
|
2004-05-03 05:41:21 +00:00
|
|
|
$ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('menu_mid', 1)");
|
2004-04-15 20:49:42 +00:00
|
|
|
}
|
|
|
|
else {
|
2004-05-22 21:28:51 +00:00
|
|
|
$ret[] = update_sql("CREATE TABLE {menu} (
|
2004-05-03 05:41:21 +00:00
|
|
|
mid integer NOT NULL default '0',
|
|
|
|
pid integer NOT NULL default '0',
|
|
|
|
path varchar(255) NOT NULL default '',
|
|
|
|
title varchar(255) NOT NULL default '',
|
|
|
|
weight smallint NOT NULL default '0',
|
|
|
|
visibility smallint NOT NULL default '0',
|
|
|
|
status smallint NOT NULL default '0',
|
|
|
|
PRIMARY KEY (mid)
|
|
|
|
);");
|
|
|
|
|
2004-04-15 20:49:42 +00:00
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
2004-04-24 16:42:39 +00:00
|
|
|
function update_84() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "mysql") {
|
2004-05-03 05:41:21 +00:00
|
|
|
$ret[] = update_sql("ALTER TABLE {vocabulary} ADD help VARCHAR(255) NOT NULL DEFAULT '' AFTER description;");
|
2004-04-24 16:42:39 +00:00
|
|
|
}
|
|
|
|
else {
|
2004-05-03 05:41:21 +00:00
|
|
|
$ret[] = update_sql("ALTER TABLE {vocabulary} ADD help VARCHAR(255)");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {vocabulary} ALTER help SET DEFAULT ''");
|
|
|
|
$ret[] = update_sql("UPDATE {vocabulary} SET help = ''");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {vocabulary} ALTER help SET NOT NULL");
|
2004-04-24 16:42:39 +00:00
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
2004-04-27 20:10:09 +00:00
|
|
|
function update_85() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS['db_type'] == 'mysql') {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {bundle} RENAME TO {aggregator_category}");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_category} DROP attributes");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_category} CHANGE bid cid int(10) NOT NULL auto_increment");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_category} ADD description longtext NOT NULL");
|
|
|
|
$ret[] = update_sql("UPDATE {sequences} SET name = '{aggregator_category}_cid' WHERE name = '{bundle}_bid'");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {feed} RENAME TO {aggregator_feed}");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_feed} DROP attributes");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_feed} ADD block tinyint(2) NOT NULL");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_category} ADD block tinyint(2) NOT NULL");
|
|
|
|
$ret[] = update_sql("UPDATE {sequences} SET name = '{aggregator_feed}_fid' WHERE name = '{feed}_fid'");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {item} RENAME TO {aggregator_item}");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_item} DROP attributes");
|
|
|
|
$max = db_result(db_query_range("SELECT iid FROM {aggregator_item} ORDER BY iid DESC", 1, 1));
|
|
|
|
if ($max) {
|
|
|
|
$ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('{aggregator_item}_iid', $max)");
|
|
|
|
}
|
|
|
|
$ret[] = update_sql("CREATE TABLE {aggregator_category_feed} (
|
|
|
|
fid int(10) NOT NULL,
|
|
|
|
cid int(10) NOT NULL,
|
|
|
|
PRIMARY KEY (fid, cid)
|
|
|
|
)");
|
|
|
|
$ret[] = update_sql("CREATE TABLE {aggregator_category_item} (
|
|
|
|
iid int(10) NOT NULL,
|
|
|
|
cid int(10) NOT NULL,
|
|
|
|
PRIMARY KEY (iid, cid)
|
|
|
|
)");
|
|
|
|
}
|
|
|
|
else {
|
2004-05-03 05:41:21 +00:00
|
|
|
$ret[] = update_sql("ALTER TABLE {bundle} RENAME TO {aggregator_category}");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_category} DROP attributes");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_category} RENAME bid TO cid");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_category} ADD description text");
|
|
|
|
$ret[] = update_sql("UPDATE {aggregator_category} SET description = ''");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_category} ALTER COLUMN description SET NOT NULL");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {feed} RENAME TO {aggregator_feed}");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_feed} DROP attributes");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_feed} ADD block smallint");
|
|
|
|
$ret[] = update_sql("UPDATE {aggregator_feed} SET block = 0");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_feed} ALTER COLUMN block SET NOT NULL");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_category} ADD block smallint");
|
|
|
|
$ret[] = update_sql("UPDATE {aggregator_category} SET block = 0");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_category} ALTER COLUMN block SET NOT NULL");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {item} RENAME TO {aggregator_item}");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {aggregator_item} DROP attributes");
|
|
|
|
$ret[] = update_sql("CREATE TABLE {aggregator_category_feed} (
|
|
|
|
fid integer NOT NULL default '0',
|
|
|
|
cid integer NOT NULL default '0',
|
|
|
|
PRIMARY KEY (fid,cid)
|
|
|
|
);");
|
|
|
|
$ret[] = update_sql("CREATE TABLE {aggregator_category_item} (
|
|
|
|
iid integer NOT NULL default '0',
|
|
|
|
cid integer NOT NULL default '0',
|
|
|
|
PRIMARY KEY (iid,cid)
|
|
|
|
)");
|
2004-04-27 20:10:09 +00:00
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
2004-05-10 20:34:25 +00:00
|
|
|
function update_86() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("INSERT INTO {users_roles} (uid, rid) SELECT uid, rid FROM {users}");
|
|
|
|
// TODO: should we verify the insert above worked before dropping rid?
|
|
|
|
$ret[] = update_sql("ALTER TABLE {users} DROP rid");
|
2004-05-13 18:19:29 +00:00
|
|
|
return $ret;
|
2004-05-10 20:34:25 +00:00
|
|
|
}
|
|
|
|
|
2004-05-18 18:41:46 +00:00
|
|
|
function update_87() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE {comments} ADD name varchar(60) DEFAULT NULL");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {comments} ADD mail varchar(64) DEFAULT NULL");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {comments} ADD homepage varchar(255) DEFAULT NULL");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
2004-06-18 15:04:37 +00:00
|
|
|
function update_88() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE {menu} DROP status");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {menu} DROP visibility");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {menu} ADD type INT(2) UNSIGNED DEFAULT '0' NOT NULL");
|
|
|
|
$ret[] = update_sql("DELETE FROM {menu}");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
2004-06-19 10:39:36 +00:00
|
|
|
function update_89() {
|
|
|
|
$ret = array();
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} CHANGE static sticky INT(2) DEFAULT '0' NOT NULL");
|
|
|
|
|
|
|
|
// Change the node settings, so that it uses node_sticky_$type instead of node_static_$type
|
|
|
|
$result = db_query("SELECT * FROM {variable} WHERE name LIKE 'node_static_%'");
|
|
|
|
while ($variable = db_fetch_object($result)) {
|
|
|
|
//get the node type name, place it into $name_arr. The name can be found with $name_arr[2]
|
|
|
|
$name_arr = explode("_",$variable->name);
|
|
|
|
$ret[] = update_sql("INSERT INTO {variable} (name,value) VALUES ('node_sticky_".$name_arr[2]."','".$variable->value."')");
|
|
|
|
}
|
|
|
|
$ret[] = db_query("DELETE FROM {variable} WHERE name LIKE 'node_static_%'");
|
|
|
|
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
2004-06-27 19:10:52 +00:00
|
|
|
function update_90() {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {profile_fields} CHANGE overview visibility INT(1) UNSIGNED DEFAULT '0' NOT NULL");
|
|
|
|
$ret[] = update_sql("UPDATE {profile_fields} SET visibility = 2 WHERE visibility = 1");
|
|
|
|
$ret[] = update_sql("UPDATE {profile_fields} SET visibility = 1 WHERE visibility = 0");
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
2004-06-30 07:26:02 +00:00
|
|
|
function update_91() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS["db_type"] == "pgsql") {
|
|
|
|
$ret[] = update_sql("CREATE INDEX node_created ON {node} (created)");
|
|
|
|
$ret[] = update_sql("CREATE INDEX node_changed ON {node} (changed)");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} ADD INDEX node_created (created)");
|
|
|
|
$ret[] = update_sql("ALTER TABLE {node} ADD INDEX node_changed (changed)");
|
|
|
|
}
|
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
2004-07-08 19:22:48 +00:00
|
|
|
function update_92() {
|
2004-07-10 16:03:30 +00:00
|
|
|
$ret = array();
|
2004-07-08 19:22:48 +00:00
|
|
|
$ret[] = update_sql("DELETE FROM {cache}");
|
2004-07-10 16:03:30 +00:00
|
|
|
return $ret;
|
2004-07-08 19:22:48 +00:00
|
|
|
}
|
|
|
|
|
2004-07-11 06:53:39 +00:00
|
|
|
function update_93() {
|
|
|
|
$ret = array();
|
|
|
|
if ($GLOBALS['db_type'] == 'pgsql') {
|
|
|
|
$ret[] = update_sql('DROP INDEX url_alias_src_idx');
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
$ret[] = update_sql('ALTER TABLE {url_alias} DROP INDEX src');
|
|
|
|
}
|
2004-07-11 07:19:22 +00:00
|
|
|
$ret[] = update_sql("INSERT INTO {url_alias} (src, dst) VALUES ('node/feed', 'rss.xml')");
|
2004-07-11 06:53:39 +00:00
|
|
|
return $ret;
|
|
|
|
}
|
|
|
|
|
2004-02-25 22:20:09 +00:00
|
|
|
function update_sql($sql) {
|
|
|
|
$edit = $_POST["edit"];
|
|
|
|
$result = db_query($sql);
|
|
|
|
if ($result) {
|
|
|
|
return array('1', nl2br(htmlentities($sql)) ." ", "<div style=\"color: green;\">OK</div>\n");
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
return array('0', nl2br(htmlentities($sql)) ." ", "<div style=\"color: red;\">FAILED</div>\n");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|