Index: modules/node/node.module =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.module,v retrieving revision 1.776.2.30 diff -u -p -r1.776.2.30 node.module --- modules/node/node.module 16 Jul 2008 19:04:21 -0000 1.776.2.30 +++ modules/node/node.module 14 Aug 2008 22:28:53 -0000 @@ -863,7 +863,7 @@ function node_search($op = 'search', $ke $last = variable_get('node_cron_last', 0); $last_nid = variable_get('node_cron_last_nid', 0); $total = db_result(db_query('SELECT COUNT(*) FROM {node} WHERE status = 1')); - $remaining = db_result(db_query('SELECT COUNT(*) FROM {node} n LEFT JOIN {node_comment_statistics} c ON n.nid = c.nid WHERE n.status = 1 AND ((GREATEST(n.created, n.changed, c.last_comment_timestamp) = %d AND n.nid > %d ) OR (n.created > %d OR n.changed > %d OR c.last_comment_timestamp > %d))', $last, $last_nid, $last, $last, $last)); + $remaining = db_result(db_query('SELECT COUNT(*) FROM {node} n LEFT JOIN {node_comment_statistics} c ON n.nid = c.nid WHERE n.status = 1 AND ((GREATEST(COALESCE(c.last_comment_timestamp, 0), n.changed) = %d AND n.nid > %d ) OR (n.created > %d OR n.changed > %d OR COALESCE(c.last_comment_timestamp, 0) > %d))', $last, $last_nid, $last, $last, $last)); return array('remaining' => $remaining, 'total' => $total); case 'admin': @@ -2559,7 +2559,7 @@ function node_update_index() { variable_set('node_cron_comments_scale', 1.0 / max(1, db_result(db_query('SELECT MAX(comment_count) FROM {node_comment_statistics}')))); variable_set('node_cron_views_scale', 1.0 / max(1, db_result(db_query('SELECT MAX(totalcount) FROM {node_counter}')))); - $result = db_query_range('SELECT GREATEST(IF(c.last_comment_timestamp IS NULL, 0, c.last_comment_timestamp), n.changed) as last_change, n.nid FROM {node} n LEFT JOIN {node_comment_statistics} c ON n.nid = c.nid WHERE n.status = 1 AND ((GREATEST(n.changed, c.last_comment_timestamp) = %d AND n.nid > %d) OR (n.changed > %d OR c.last_comment_timestamp > %d)) ORDER BY GREATEST(n.changed, c.last_comment_timestamp) ASC, n.nid ASC', $last, $last_nid, $last, $last, $last, 0, $limit); + $result = db_query_range('SELECT GREATEST(COALESCE(c.last_comment_timestamp, 0), n.changed) as last_change, n.nid FROM {node} n LEFT JOIN {node_comment_statistics} c ON n.nid = c.nid WHERE n.status = 1 AND ((GREATEST(n.changed, COALESCE(c.last_comment_timestamp, 0)) = %d AND n.nid > %d) OR (n.changed > %d OR COALESCE(c.last_comment_timestamp, 0) > %d)) ORDER BY last_change ASC, n.nid ASC', $last, $last_nid, $last, $last, $last, 0, $limit); while ($node = db_fetch_object($result)) { $last_change = $node->last_change;