1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-06 16:56:44 +02:00

Merge changes made in revisions #r9405 to #r9467

2009-04-18

git-svn-id: file:///svn/phpbb/trunk@9468 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen
2009-04-18 15:09:19 +00:00
parent e3d98fe77b
commit 1042152a55
61 changed files with 376 additions and 154 deletions

View File

@@ -633,7 +633,24 @@ function delete_posts($where_type, $where_ids, $auto_sync = true, $posted_sync =
return false;
}
$where_clause = phpbb::$db->sql_in_set($where_type, array_map('intval', $where_ids));
$where_ids = array_map('intval', $where_ids);
// Split post deletion into chunks to overcome database limitations
if (sizeof($where_ids) >= 1001)
{
// Split into chunks of 1000
$chunks = array_chunk($where_ids, 1000);
$removed_posts = 0;
foreach ($chunks as $_where_ids)
{
$removed_posts += delete_posts($where_type, $_where_ids, $auto_sync, $posted_sync, $post_count_sync, $call_delete_topics);
}
return $removed_posts;
}
$where_clause = phpbb::$db->sql_in_set($where_type, $where_ids);
}
$approved_posts = 0;
@@ -646,10 +663,10 @@ function delete_posts($where_type, $where_ids, $auto_sync = true, $posted_sync =
while ($row = phpbb::$db->sql_fetchrow($result))
{
$post_ids[] = $row['post_id'];
$poster_ids[] = $row['poster_id'];
$topic_ids[] = $row['topic_id'];
$forum_ids[] = $row['forum_id'];
$post_ids[] = (int) $row['post_id'];
$poster_ids[] = (int) $row['poster_id'];
$topic_ids[] = (int) $row['topic_id'];
$forum_ids[] = (int) $row['forum_id'];
if ($row['post_postcount'] && $post_count_sync && $row['post_approved'])
{