Changeset 43452 in spip-zone


Ignore:
Timestamp:
Jan 9, 2011, 2:07:40 PM (10 years ago)
Author:
cedric@…
Message:

utiliser objet_optimiser_liens pour l'optimisation de la base

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/mots/mots_pipelines.php

    r43406 r43452  
    120120
    121121        $result = sql_delete("spip_mots", "length(titre)=0 AND maj < $mydate");
    122        
    123         #[todo] optimiser_table_liens_objet_lie_inexistant('spip_mots_liens');
    124         # les liens des mots qui sont lies a un objet inexistant
    125         $objets = allfetsel("DISTINCT objet","spip_mots_liens");
    126         foreach ($objets as $t){
    127                 $type = $t['objet'];
    128                 $spip_table_objet = table_objet_sql($type);
    129                 $id_table_objet = id_table_objet($type);
    130                 $res = sql_select("L.id_mot AS id,id_objet",
    131                               "spip_mots_liens AS L
    132                                 LEFT JOIN $spip_table_objet AS O
    133                                   ON O.$id_table_objet=L.id_objet AND L.objet=".sql_quote($type),
    134                                 "O.$id_table_objet IS NULL");
    135                 // sur une cle primaire composee, pas d'autres solutions que de virer un a un
    136                 while ($row = sql_fetch($sel)){
    137                         sql_delete("spip_mots_liens", array("id_mot=".$row['id'],"id_objet=".$row['id_objet'],"objet=".sql_quote($type)));
    138                         spip_log("Entree ".$row['id']."/".$row['id_objet']."/$type supprimee dans la table spip_mots_liens");
    139                 }
    140         }
    141        
    142         #[todo] optimiser_table_liens_id_lie_inexistant('spip_mots_liens');
    143         # les liens des mots qui sont lies a un mot inexistant
    144         $table_origine = substr("spip_mots_liens", 0, -6);
    145         $id_table_origine = id_table_objet($table_origine);
    146         $res = sql_select("L.$id_table_origine AS id,id_objet",
    147                           "spip_mots_liens AS L
    148                                 LEFT JOIN $table_origine AS O
    149                                   ON O.$id_table_origine=L.$id_table_origine",
    150                         "O.$id_table_origine IS NULL");
    151         // sur une cle primaire composee, pas d'autres solutions que de virer un a un
    152         while ($row = sql_fetch($sel)){
    153                 sql_delete("spip_mots_liens", array("id_mot=".$row['id']));
    154                 spip_log("Entree id_mot=".$row['id']."/$type supprimee dans la table spip_mots_liens");
    155         }
    156        
    157 
     122
     123        include_spip('action/editer_liens');
     124        // optimiser les liens morts :
     125        // entre mots vers des objets effaces
     126        // depuis des mots effaces
     127        $n+= objet_optimiser_liens(array('mot'=>'*'),'*');
    158128
    159129        return $flux;
Note: See TracChangeset for help on using the changeset viewer.