Return of the Dumb Update (for rebuilding link tables)
This commit is contained in:
parent
d4e8cc2467
commit
800cd47535
1 changed files with 76 additions and 0 deletions
|
|
@ -141,7 +141,83 @@ class LinksUpdate {
|
|||
}
|
||||
wfProfileOut( $fname );
|
||||
}
|
||||
|
||||
function doDumbUpdate()
|
||||
{
|
||||
# Old inefficient update function
|
||||
# Used for rebuilding the link table
|
||||
|
||||
global $wgLinkCache, $wgDBtransactions;
|
||||
$fname = "LinksUpdate::doDumbUpdate";
|
||||
wfProfileIn( $fname );
|
||||
|
||||
if( $wgDBtransactions ) {
|
||||
$sql = "BEGIN";
|
||||
wfQuery( $sql, DB_WRITE, $fname );
|
||||
}
|
||||
|
||||
$sql = "DELETE FROM links WHERE l_from='{$this->mTitleEnc}'";
|
||||
wfQuery( $sql, DB_WRITE, $fname );
|
||||
|
||||
$a = $wgLinkCache->getGoodLinks();
|
||||
$sql = "";
|
||||
if ( 0 != count( $a ) ) {
|
||||
$sql = "INSERT INTO links (l_from,l_to) VALUES ";
|
||||
$first = true;
|
||||
foreach( $a as $lt => $lid ) {
|
||||
if ( ! $first ) { $sql .= ","; }
|
||||
$first = false;
|
||||
|
||||
$sql .= "('{$this->mTitleEnc}',{$lid})";
|
||||
}
|
||||
}
|
||||
if ( "" != $sql ) { wfQuery( $sql, DB_WRITE, $fname ); }
|
||||
|
||||
$sql = "DELETE FROM brokenlinks WHERE bl_from={$this->mId}";
|
||||
wfQuery( $sql, DB_WRITE, $fname );
|
||||
|
||||
$a = $wgLinkCache->getBadLinks();
|
||||
$sql = "";
|
||||
if ( 0 != count ( $a ) ) {
|
||||
$sql = "INSERT INTO brokenlinks (bl_from,bl_to) VALUES ";
|
||||
$first = true;
|
||||
foreach( $a as $blt ) {
|
||||
$blt = wfStrencode( $blt );
|
||||
if ( ! $first ) { $sql .= ","; }
|
||||
$first = false;
|
||||
|
||||
$sql .= "({$this->mId},'{$blt}')";
|
||||
}
|
||||
}
|
||||
if ( "" != $sql ) { wfQuery( $sql, DB_WRITE, $fname ); }
|
||||
|
||||
$sql = "DELETE FROM imagelinks WHERE il_from='{$this->mTitleEnc}'";
|
||||
wfQuery( $sql, DB_WRITE, $fname );
|
||||
|
||||
$a = $wgLinkCache->getImageLinks();
|
||||
$sql = "";
|
||||
if ( 0 != count ( $a ) ) {
|
||||
$sql = "INSERT INTO imagelinks (il_from,il_to) VALUES ";
|
||||
$first = true;
|
||||
foreach( $a as $iname => $val ) {
|
||||
$iname = wfStrencode( $iname );
|
||||
if ( ! $first ) { $sql .= ","; }
|
||||
$first = false;
|
||||
|
||||
$sql .= "('{$this->mTitleEnc}','{$iname}')";
|
||||
}
|
||||
}
|
||||
if ( "" != $sql ) { wfQuery( $sql, DB_WRITE, $fname ); }
|
||||
|
||||
$this->fixBrokenLinks();
|
||||
|
||||
if( $wgDBtransactions ) {
|
||||
$sql = "COMMIT";
|
||||
wfQuery( $sql, DB_WRITE, $fname );
|
||||
}
|
||||
wfProfileOut( $fname );
|
||||
}
|
||||
|
||||
function fixBrokenLinks() {
|
||||
/* Update any brokenlinks *to* this page */
|
||||
/* Call for a newly created page, or just to make sure state is consistent */
|
||||
|
|
|
|||
Loading…
Reference in a new issue