use ContentHandler;
use DBAccessObjectUtils;
use Hooks;
-use \IDBAccessObject;
+use IDBAccessObject;
use InvalidArgumentException;
use IP;
use LogicException;
/**
* MCR migration note: this replaces Revision::isUnpatrolled
*
+ * @todo This is overly specific, so move or kill this method.
+ *
+ * @param RevisionRecord $rev
+ *
* @return int Rcid of the unpatrolled row, zero if there isn't one
*/
- public function isUnpatrolled( RevisionRecord $rev ) {
+ public function getRcIdIfUnpatrolled( RevisionRecord $rev ) {
$rc = $this->getRecentChange( $rev );
if ( $rc && $rc->getAttribute( 'rc_patrolled' ) == 0 ) {
return $rc->getAttribute( 'rc_id' );
* @param string $timestamp
* @return RevisionRecord|null
*/
- public function getRevisionFromTimestamp( $title, $timestamp ) {
+ public function getRevisionByTimestamp( $title, $timestamp ) {
return $this->newRevisionFromConds(
[
'rev_timestamp' => $timestamp,
$pageId = isset( $row->rev_page ) ? $row->rev_page : 0; // XXX: also check page_id?
$revId = isset( $row->rev_id ) ? $row->rev_id : 0;
- $title = $this->getTitle( $pageId, $revId );
+ $title = $this->getTitle( $pageId, $revId, $queryFlags );
}
if ( !isset( $row->page_latest ) ) {
$pageId = isset( $fields['page'] ) ? $fields['page'] : 0;
$revId = isset( $fields['id'] ) ? $fields['id'] : 0;
- $title = $this->getTitle( $pageId, $revId );
+ $title = $this->getTitle( $pageId, $revId, $queryFlags );
}
if ( !isset( $fields['page'] ) ) {
$storeWiki = $storeWiki ?: wfWikiID();
$dbWiki = $dbWiki ?: wfWikiID();
- if ( $dbWiki !== $storeWiki ) {
- throw new MWException( "RevisionStore for $storeWiki "
- . "cannot be used with a DB connection for $dbWiki" );
+ if ( $dbWiki === $storeWiki ) {
+ return;
+ }
+
+ // HACK: counteract encoding imposed by DatabaseDomain
+ $storeWiki = str_replace( '?h', '-', $storeWiki );
+ $dbWiki = str_replace( '?h', '-', $dbWiki );
+
+ if ( $dbWiki === $storeWiki ) {
+ return;
}
+
+ throw new MWException( "RevisionStore for $storeWiki "
+ . "cannot be used with a DB connection for $dbWiki" );
}
/**
*
* MCR migration note: this replaces Revision::getParentLengths
*
+ * @param int[] $revIds
+ * @return int[] associative array mapping revision IDs from $revIds to the nominal size
+ * of the corresponding revision.
+ */
+ public function getRevisionSizes( array $revIds ) {
+ return $this->listRevisionSizes( $this->getDBConnection( DB_REPLICA ), $revIds );
+ }
+
+ /**
+ * Do a batched query for the sizes of a set of revisions.
+ *
+ * MCR migration note: this replaces Revision::getParentLengths
+ *
+ * @deprecated use RevisionStore::getRevisionSizes instead.
+ *
* @param IDatabase $db
* @param int[] $revIds
* @return int[] associative array mapping revision IDs from $revIds to the nominal size