aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/acp/acp_forums.php
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@phpbb.com>2010-05-14 02:10:50 +0200
committerAndreas Fischer <bantu@phpbb.com>2010-05-14 02:10:50 +0200
commit9ce0873bd1dadac9ebd1a74d857f71c43166fa05 (patch)
treef57274e8c97f81f5964cd4e7c2e49b1d16e13ecc /phpBB/includes/acp/acp_forums.php
parentb3bbe576035da528aa6e52775cbc60133a8a2c90 (diff)
downloadforums-9ce0873bd1dadac9ebd1a74d857f71c43166fa05.tar
forums-9ce0873bd1dadac9ebd1a74d857f71c43166fa05.tar.gz
forums-9ce0873bd1dadac9ebd1a74d857f71c43166fa05.tar.bz2
forums-9ce0873bd1dadac9ebd1a74d857f71c43166fa05.tar.xz
forums-9ce0873bd1dadac9ebd1a74d857f71c43166fa05.zip
[ticket/9514] Correctly delete big datasets when deleting a forum including topics/posts on non-MySQL databases.
PHPBB3-9514
Diffstat (limited to 'phpBB/includes/acp/acp_forums.php')
-rw-r--r--phpBB/includes/acp/acp_forums.php7
1 files changed, 5 insertions, 2 deletions
diff --git a/phpBB/includes/acp/acp_forums.php b/phpBB/includes/acp/acp_forums.php
index 5a5adc57ae..54bf905374 100644
--- a/phpBB/includes/acp/acp_forums.php
+++ b/phpBB/includes/acp/acp_forums.php
@@ -1705,6 +1705,9 @@ class acp_forums
)
);
+ // Amount of rows we select and delete in one iteration.
+ $batch_size = 500;
+
foreach ($tables_ary as $field => $tables)
{
$start = 0;
@@ -1714,7 +1717,7 @@ class acp_forums
$sql = "SELECT $field
FROM " . POSTS_TABLE . '
WHERE forum_id = ' . $forum_id;
- $result = $db->sql_query_limit($sql, 500, $start);
+ $result = $db->sql_query_limit($sql, $batch_size, $start);
$ids = array();
while ($row = $db->sql_fetchrow($result))
@@ -1733,7 +1736,7 @@ class acp_forums
}
}
}
- while ($row);
+ while (sizeof($ids) == $batch_size);
}
unset($ids);