just realizing that it is better to limit the uses of RANGE.

git-svn-id: file:///svn/phpbb/trunk@6420 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen 2006-09-30 15:06:03 +00:00
parent b08c54f35e
commit 4c2e2b83c7
2 changed files with 6 additions and 26 deletions

View file

@ -361,7 +361,6 @@ class acp_forums
$end = $start + $batch_size;
// Sync all topics in batch mode...
// topic_moved
sync('topic_approved', 'range', 'topic_id BETWEEN ' . $start . ' AND ' . $end, true, false);
sync('topic', 'range', 'topic_id BETWEEN ' . $start . ' AND ' . $end, true, true);

View file

@ -1036,7 +1036,7 @@ function sync($mode, $where_type = '', $where_ids = '', $resync_parents = false,
$where_ids = ($where_ids) ? array((int) $where_ids) : array();
}
if ($mode == 'forum' || $mode == 'topic')
if ($mode == 'forum' || $mode == 'topic' || $mode == 'topic_approved')
{
if (!$where_type)
{
@ -1068,33 +1068,14 @@ function sync($mode, $where_type = '', $where_ids = '', $resync_parents = false,
}
else
{
if (!$where_type)
if (!sizeof($where_ids))
{
$where_sql = '';
$where_sql_and = 'WHERE';
return;
}
else if ($where_type == 'range')
{
// Only check a range of topics/forums. For instance: 'topic_id BETWEEN 1 AND 60'
$where_sql = 'WHERE (' . $mode{0} . ".$where_ids)";
$where_sql_and = $where_sql . "\n\tAND";
}
else
{
// Do not sync the "global forum"
$where_ids = array_diff($where_ids, array(0));
if (!sizeof($where_ids))
{
// Empty array with IDs. This means that we don't have any work to do. Just return.
return;
}
// Limit the topics/forums we are syncing, use specific topic/forum IDs.
// $where_type contains the field for the where clause (forum_id, topic_id)
$where_sql = 'WHERE ' . $db->sql_in_set($mode{0} . '.' . $where_type, $where_ids);
$where_sql_and = $where_sql . "\n\tAND";
}
// $where_type contains the field for the where clause (forum_id, topic_id)
$where_sql = 'WHERE ' . $db->sql_in_set($mode{0} . '.' . $where_type, $where_ids);
$where_sql_and = $where_sql . "\n\tAND";
}
switch ($mode)