$fname = get_class( $this ) . '::recache';
$dbw = wfGetDB( DB_MASTER );
- $dbr = wfGetDB( DB_SLAVE, array( $this->getName(), __METHOD__, 'vslow' ) );
- if ( !$dbw || !$dbr ) {
+ if ( !$dbw ) {
return false;
}
$num = $res->numRows();
# Fetch results
$vals = array();
- while ( $res && $row = $dbr->fetchObject( $res ) ) {
+ foreach ( $res as $row ) {
if ( isset( $row->value ) ) {
if ( $this->usesTimestamps() ) {
$value = wfTimestamp( TS_UNIX,
return $num;
}
+ /**
+ * Get a DB connection to be used for slow recache queries
+ */
+ function getRecacheDB() {
+ return wfGetDB( DB_SLAVE, array( $this->getName(), 'QueryPage::recache', 'vslow' ) );
+ }
+
/**
* Run the query and return the result
* @param int|bool $limit Numerical limit or false for no limit
*/
function reallyDoQuery( $limit, $offset = false ) {
$fname = get_class( $this ) . "::reallyDoQuery";
- $dbr = wfGetDB( DB_SLAVE );
+ $dbr = $this->getRecacheDB();
$query = $this->getQueryInfo();
$order = $this->getOrderFields();