@@ -903,13 +903,34 @@ function taxonomy_update_7010() {
...
@@ -903,13 +903,34 @@ function taxonomy_update_7010() {
/**
/**
* Drop unpublished nodes from the index.
* Drop unpublished nodes from the index.
*/
*/
functiontaxonomy_update_7011(){
functiontaxonomy_update_7011(&$sandbox){
$nids=db_query('SELECT nid from {node} WHERE status = :status',array(':status'=>NODE_NOT_PUBLISHED))->fetchCol();
// Initialize information needed by the batch update system.
if(!isset($sandbox['progress'])){
$sandbox['progress']=0;
$sandbox['max']=db_query('SELECT COUNT(DISTINCT n.nid) FROM {node} n INNER JOIN {taxonomy_index} t ON n.nid = t.nid WHERE n.status = :status',array(':status'=>NODE_NOT_PUBLISHED))->fetchField();
// If there's no data, don't bother with the extra work.
if(empty($sandbox['max'])){
return;
}
}
// Process records in groups of 5000.
$limit=5000;
$nids=db_query_range('SELECT DISTINCT n.nid FROM {node} n INNER JOIN {taxonomy_index} t ON n.nid = t.nid WHERE n.status = :status',0,$limit,array(':status'=>NODE_NOT_PUBLISHED))->fetchCol();
if(!empty($nids)){
if(!empty($nids)){
db_delete('taxonomy_index')
db_delete('taxonomy_index')
->condition('nid',$nids)
->condition('nid',$nids)
->execute();
->execute();
}
}
// Update our progress information for the batch update.
$sandbox['progress']+=$limit;
// Indicate our current progress to the batch update system, if the update is