/**
* 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 int $id
* @param int $flags (optional)
- * @param Title $title (optional)
* @return RevisionRecord|null
*/
- public function getRevisionById( $id, $flags = 0, Title $title = null ) {
- return $this->newRevisionFromConds( [ 'rev_id' => intval( $id ) ], $flags, $title );
+ public function getRevisionById( $id, $flags = 0 ) {
+ return $this->newRevisionFromConds( [ 'rev_id' => intval( $id ) ], $flags );
}
/**
* @param string $timestamp
* @return RevisionRecord|null
*/
- public function getRevisionFromTimestamp( $title, $timestamp ) {
+ public function getRevisionByTimestamp( $title, $timestamp ) {
return $this->newRevisionFromConds(
[
'rev_timestamp' => $timestamp,
$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
* MCR migration note: this replaces Revision::getPrevious
*
* @param RevisionRecord $rev
- * @param Title $title if known (optional)
*
* @return RevisionRecord|null
*/
- public function getPreviousRevision( RevisionRecord $rev, Title $title = null ) {
- if ( $title === null ) {
- $title = $this->getTitle( $rev->getPageId(), $rev->getId() );
- }
+ public function getPreviousRevision( RevisionRecord $rev ) {
+ $title = $this->getTitle( $rev->getPageId(), $rev->getId() );
$prev = $title->getPreviousRevisionID( $rev->getId() );
if ( $prev ) {
return $this->getRevisionByTitle( $title, $prev );
* MCR migration note: this replaces Revision::getNext
*
* @param RevisionRecord $rev
- * @param Title $title if known (optional)
*
* @return RevisionRecord|null
*/
- public function getNextRevision( RevisionRecord $rev, Title $title = null ) {
- if ( $title === null ) {
- $title = $this->getTitle( $rev->getPageId(), $rev->getId() );
- }
+ public function getNextRevision( RevisionRecord $rev ) {
+ $title = $this->getTitle( $rev->getPageId(), $rev->getId() );
$next = $title->getNextRevisionID( $rev->getId() );
if ( $next ) {
return $this->getRevisionByTitle( $title, $next );