- if ( $this->isExpensive( ) ) {
- $vsp = $wgLang->getValidSpecialPages();
- $logpage = new LogPage( "!" . $vsp[$sname] );
- $logpage->mUpdateRecentChanges = false;
-
- if ( $wgMiserMode ) {
- $logpage->showAsDisabledPage();
- return;
+ if ( $this->isExpensive() ) {
+ $type = wfStrencode( $sname );
+ $recache = $wgRequest->getBool( "recache" );
+ if( $recache ) {
+ # Clear out any old cached data
+ $res = wfQuery( "DELETE FROM querycache WHERE qc_type='$type'", DB_WRITE, $fname );
+
+ # Save results into the querycache table
+ $maxstored = 1000;
+ $res = wfQuery(
+ "INSERT INTO querycache(qc_type,qc_namespace,qc_title,qc_value) " .
+ $this->getSQL() .
+ $this->getOrderLimit( 0, $maxstored ),
+ DB_WRITE, $fname );
+ }
+ if( $wgMiserMode || $recache ) {
+ $sql =
+ "SELECT qc_type as type, qc_namespace as namespace,qc_title as title, qc_value as value
+ FROM querycache WHERE qc_type='$type'";
+ }
+ if( $wgMiserMode ) {
+ $wgOut->addWikiText( wfMsg( "perfcached" ) );