mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-26 05:08:52 +00:00
Some slight changes to the pruning code
This should improve performance for pruning on large forums Topics with no last_post_id are now dealt with separately git-svn-id: file:///svn/phpbb/branches/phpBB-2_0_0@5508 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
parent
9fc979dcd1
commit
138f82ef8e
1 changed files with 16 additions and 2 deletions
|
@ -31,6 +31,21 @@ function prune($forum_id, $prune_date, $prune_all = false)
|
||||||
{
|
{
|
||||||
global $db, $lang;
|
global $db, $lang;
|
||||||
|
|
||||||
|
// Before pruning, lets try to clean up the invalid topic entries
|
||||||
|
$sql = 'SELECT topic_id FROM ' . TOPICS_TABLE . '
|
||||||
|
WHERE topic_last_post_id = 0';
|
||||||
|
if ( !($result = $db->sql_query($sql)) )
|
||||||
|
{
|
||||||
|
message_die(GENERAL_ERROR, 'Could not obtain lists of topics to sync', '', __LINE__, __FILE__, $sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
while( $row = $db->sql_fetchrow($result) )
|
||||||
|
{
|
||||||
|
sync('topic', $row['topic_id']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$db->sql_freeresult($result);
|
||||||
|
|
||||||
$prune_all = ($prune_all) ? '' : 'AND t.topic_vote = 0 AND t.topic_type <> ' . POST_ANNOUNCE;
|
$prune_all = ($prune_all) ? '' : 'AND t.topic_vote = 0 AND t.topic_type <> ' . POST_ANNOUNCE;
|
||||||
//
|
//
|
||||||
// Those without polls and announcements ... unless told otherwise!
|
// Those without polls and announcements ... unless told otherwise!
|
||||||
|
@ -39,8 +54,7 @@ function prune($forum_id, $prune_date, $prune_all = false)
|
||||||
FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t
|
FROM " . POSTS_TABLE . " p, " . TOPICS_TABLE . " t
|
||||||
WHERE t.forum_id = $forum_id
|
WHERE t.forum_id = $forum_id
|
||||||
$prune_all
|
$prune_all
|
||||||
AND ( p.post_id = t.topic_last_post_id
|
AND p.post_id = t.topic_last_post_id";
|
||||||
OR t.topic_last_post_id = 0 )";
|
|
||||||
if ( $prune_date != '' )
|
if ( $prune_date != '' )
|
||||||
{
|
{
|
||||||
$sql .= " AND p.post_time < $prune_date";
|
$sql .= " AND p.post_time < $prune_date";
|
||||||
|
|
Loading…
Add table
Reference in a new issue