diff options
Diffstat (limited to 'phpBB/develop/merge_post_tables.php')
-rw-r--r-- | phpBB/develop/merge_post_tables.php | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/phpBB/develop/merge_post_tables.php b/phpBB/develop/merge_post_tables.php deleted file mode 100644 index 3567a569c6..0000000000 --- a/phpBB/develop/merge_post_tables.php +++ /dev/null @@ -1,209 +0,0 @@ -<?php -/*************************************************************************** - * merge_clean_posts.php - * ------------------- - * begin : Tuesday, February 25, 2003 - * copyright : (C) 2003 The phpBB Group - * email : support@phpbb.com - * - * $Id$ - * - ***************************************************************************/ - -/*************************************************************************** - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - ***************************************************************************/ - -// -// Security message: -// -// This script is potentially dangerous. -// Remove or comment the next line (die(".... ) to enable this script. -// Do NOT FORGET to either remove this script or disable it after you have used it. -// -die("Please read the first lines of this script for instructions on how to enable it"); - -@set_time_limit(2400); - -$db = $dbhost = $dbuser = $dbpasswd = $dbport = $dbname = ''; - -define('IN_PHPBB', 1); -define('ANONYMOUS', 1); -$phpbb_root_path='./../'; -include($phpbb_root_path . 'extension.inc'); -include($phpbb_root_path . 'config.'.$phpEx); -include($phpbb_root_path . 'includes/functions.'.$phpEx); -require($phpbb_root_path . 'includes/acm/cache_' . $acm_type . '.'.$phpEx); -include($phpbb_root_path . 'db/' . $dbms . '.'.$phpEx); - -$cache = new acm(); -$db = new sql_db($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false); - -// Just Do it (tm) -$sql = "RENAME TABLE {$table_prefix}posts TO {$table_prefix}posts_temp"; -$db->sql_query($sql); - -$sql = "CREATE TABLE {$table_prefix}posts - SELECT p.*, pt.post_subject, pt.post_text, pt.post_checksum, pt.bbcode_bitfield, pt.bbcode_uid - FROM {$table_prefix}posts_temp p, {$table_prefix}posts_text pt - WHERE pt.post_id = p.post_id"; -$db->sql_query($sql); - -switch ($db->sql_layer) -{ - case 'mysql': - case 'mysql4': - $sql = 'ALTER TABLE ' . $table_prefix . 'posts - ADD PRIMARY KEY (post_id), - ADD INDEX topic_id (topic_id), - ADD INDEX poster_ip (poster_ip), - ADD INDEX post_approved (post_approved), - MODIFY COLUMN post_id mediumint(8) UNSIGNED NOT NULL auto_increment, - ADD COLUMN post_encoding varchar(11) DEFAULT \'iso-8859-15\' NOT NULL'; - break; - - case 'mssql': - case 'mssql-odbc': - case 'msaccess': - break; - - case 'postgresql': - break; -} -$db->sql_query($sql); - -$sql = "UPDATE {$table_prefix}topics SET topic_poster = 1 WHERE topic_poster = 0 OR topic_poster IS NULL"; -$db->sql_query($sql); -$sql = "UPDATE {$table_prefix}topics SET topic_last_poster_id = 1 WHERE topic_last_poster_id = 0 OR topic_last_poster_id IS NULL"; -$db->sql_query($sql); -$sql = "UPDATE {$table_prefix}posts SET poster_id = 1 WHERE poster_id = 0 OR poster_id IS NULL"; -$db->sql_query($sql); -$sql = "UPDATE {$table_prefix}users SET user_id = 1 WHERE user_id = 0"; -$db->sql_query($sql); - -$sql = "SELECT t.topic_id - FROM {$table_prefix}topics t - LEFT JOIN {$table_prefix}posts p ON p.topic_id = t.topic_id - WHERE p.topic_id IS NULL"; -$result = $db->sql_query($sql); - -if ($row = $db->sql_fetchrow($result)) -{ - $del_sql = ''; - do - { - $del_sql .= (($del_sql != '') ? ', ' : '') . $row['topic_id']; - } - while ($row = $db->sql_fetchrow($result)); - - $sql = "DELETE FROM {$table_prefix}topics - WHERE topic_id IN ($del_sql)"; - $db->sql_query($sql); -} -$db->sql_freeresult($result); - -$del_sql = ''; -$sql = "SELECT topic_id, MIN(post_id) AS first_post_id, MAX(post_id) AS last_post_id, COUNT(post_id) AS total_posts - FROM {$table_prefix}posts - GROUP BY topic_id"; -$result = $db->sql_query($sql); - -while ($row = $db->sql_fetchrow($result)) -{ - $del_sql .= (($del_sql != '') ? ', ' : '') . $row['topic_id']; - - $sql = "UPDATE {$table_prefix}topics - SET topic_first_post_id = " . $row['first_post_id'] . ", topic_last_post_id = " . $row['last_post_id'] . ", topic_replies = " . ($row['total_posts'] - 1) . " - WHERE topic_id = " . $row['topic_id']; - $db->sql_query($sql); -} -$db->sql_freeresult($result); - -$sql = "DELETE FROM {$table_prefix}topics WHERE topic_id NOT IN ($del_sql)"; -$db->sql_query($sql); - -$topic_count = $post_count = array(); -$sql = "SELECT forum_id, COUNT(topic_id) AS topics - FROM {$table_prefix}topics - GROUP BY forum_id"; -$result = $db->sql_query($sql); - -while ($row = $db->sql_fetchrow($result)) -{ - $topic_count[$row['forum_id']] = $row['topics']; -} -$db->sql_freeresult($result); - -$sql = "SELECT forum_id, COUNT(post_id) AS posts - FROM {$table_prefix}posts - GROUP BY forum_id"; -$result = $db->sql_query($sql); - -while ($row = $db->sql_fetchrow($result)) -{ - $post_count[$row['forum_id']] = $row['posts']; -} -$db->sql_freeresult($result); - -switch ($db->sql_layer) -{ - case 'oracle': - $sql = "SELECT f.*, p.post_time, p.post_username, u.username, u.user_id - FROM " . $table_prefix . "forums f, " . $table_prefix . "posts p, " . $table_prefix . "users u - WHERE p.post_id = f.forum_last_post_id(+) - AND u.user_id = p.poster_id(+)"; - break; - - default: - $sql = "SELECT f.forum_id, p.post_time, p.post_username, u.username, u.user_id - FROM ((" . $table_prefix . "forums f - LEFT JOIN " . $table_prefix . "posts p ON p.post_id = f.forum_last_post_id) - LEFT JOIN " . $table_prefix . "users u ON u.user_id = p.poster_id)"; - break; -} -$result = $db->sql_query($sql); - -$sql_ary = array(); -while ($row = $db->sql_fetchrow($result)) -{ - $forum_id = $row['forum_id']; - - $sql_ary[] = "UPDATE " . $table_prefix . "forums - SET forum_last_poster_id = " . ((!empty($row['user_id']) && $row['user_id'] != ANONYMOUS) ? $row['user_id'] : ANONYMOUS) . ", forum_last_poster_name = '" . ((!empty($row['user_id']) && $row['user_id'] != ANONYMOUS) ? addslashes($row['username']) : addslashes($row['post_username'])) . "', forum_last_post_time = " . $row['post_time'] . ", forum_posts = " . (($post_count[$forum_id]) ? $post_count[$forum_id] : 0) . ", forum_topics = " . (($topic_count[$forum_id]) ? $topic_count[$forum_id] : 0) . " - WHERE forum_id = $forum_id"; - - $sql = "SELECT t.topic_id, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time - FROM " . $table_prefix . "topics t, " . $table_prefix . "users u, " . $table_prefix . "posts p, " . $table_prefix . "posts p2, " . $table_prefix . "users u2 - WHERE t.forum_id = $forum_id - AND u.user_id = t.topic_poster - AND p.post_id = t.topic_first_post_id - AND p2.post_id = t.topic_last_post_id - AND u2.user_id = p2.poster_id"; - $result2 = $db->sql_query($sql); - - while ($row2 = $db->sql_fetchrow($result2)) - { - $sql_ary[] = "UPDATE " . $table_prefix . "topics - SET topic_poster = " . $row2['user_id'] . ", topic_first_poster_name = '" . ((!empty($row2['user_id']) && $row2['user_id'] != ANONYMOUS) ? addslashes($row2['username']) : addslashes($row2['post_username'])) . "', topic_last_poster_id = " . ((!empty($row2['id2']) && $row2['id2'] != ANONYMOUS) ? $row2['id2'] : ANONYMOUS) . ", topic_last_post_time = " . $row2['post_time'] . ", topic_last_poster_name = '" . ((!empty($row2['id2']) && $row2['id2'] != ANONYMOUS) ? addslashes($row2['user2']) : addslashes($row2['post_username2'])) . "' - WHERE topic_id = " . $row2['topic_id']; - } - $db->sql_freeresult($result2); - - unset($row2); -} -$db->sql_freeresult($result); - -foreach ($sql_ary as $sql) -{ - $sql . "<br />"; - $db->sql_query($sql); -} - -echo "<p><b>Done</b></p>\n"; - -?>
\ No newline at end of file |