Changeset 12455

Show
Ignore:
Timestamp:
02/14/08 22:06:20 (11 months ago)
Author:
pottedmeat
Message:

Refs #5602. More changes to make cron better

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • util/branches/dev/jsdoc/jsdoc.module

    r12447 r12455  
    438438      foreach (jsdoc_projects() as $project) { 
    439439        $version = jsdoc_version_node_load('HEAD', $project); 
    440         $query = db_query("SELECT vid FROM {jsdoc_resources} WHERE used = 0"); 
     440        $query = db_query("SELECT vid FROM {jsdoc_resources} WHERE used = 0 AND version = %d", $version->nid); 
     441        $bad_vids = array(); 
    441442        while ($result = db_fetch_object($query)) { 
    442           $object_query = db_query("SELECT MAX(vid) AS vid FROM {jsdoc_objects} WHERE resource_vid = %d OR provide_vid = %d GROUP BY nid"); 
    443           if ($vid = db_result($object_query)) { 
    444             db_query("UPDATE {jsdoc_objects} SET used = 0 WHERE vid = %d", $vid); 
     443          $bad_vids[] = $result->vid; 
     444        } 
     445        db_query("UPDATE {jsdoc_resources} SET used = 0 WHERE used = 1 AND version = %d", $version->nid); 
     446        foreach ($bad_vids as $bad_vid){ 
     447          $object_query = db_query("SELECT MAX(vid) AS vid FROM {jsdoc_objects} WHERE (resource_vid = %d OR provide_vid = %d) AND version = %d GROUP BY nid", $bad_vid, $bad_vid, $version->nid); 
     448          if (!db_num_rows($object_query)) { 
     449            db_query("UPDATE {jsdoc_resources} SET used = 1 WHERE vid = %d", $bad_vid); 
     450          }else{ 
     451            while ($object_result = db_fetch_object($object_query)) { 
     452              db_query("UPDATE {jsdoc_objects} SET used = 0 WHERE vid = %d", $object_result->vid); 
     453            } 
    445454          } 
    446455        } 
    447         db_query("UPDATE {jsdoc_resources} SET used = 0 WHERE used = 1 AND version = %d", $version->nid); 
    448456      } 
    449457      $files = call_user_func(_jsdoc_base() . '_get_files'); 
     
    518526          $resource_node = _jsdoc_resource_get_or_create($contents['#resource'], $namespace); 
    519527 
    520           db_query("UPDATE {jsdoc_resources} SET used = 1 WHERE vid = %d", $provides_node->vid); 
    521           db_query("UPDATE {jsdoc_resources} SET used = 1 WHERE vid = %d", $resource_node->vid); 
     528          db_query("UPDATE {jsdoc_resources} SET used = 1 WHERE vid IN (%d, %d)", $provides_node->vid, $resource_node->vid); 
    522529 
    523530          if ($cache_hit) {