use MediaWiki\Storage\RevisionStoreRecord;
use MediaWiki\Storage\SlotRecord;
use MediaWiki\Storage\SqlBlobStore;
-use MediaWiki\User\UserIdentityValue;
use Wikimedia\Rdbms\IDatabase;
use MediaWiki\Linker\LinkTarget;
use MediaWiki\MediaWikiServices;
* @return array
*/
public static function userJoinCond() {
+ global $wgActorTableSchemaMigrationStage;
+
wfDeprecated( __METHOD__, '1.31' );
+ if ( $wgActorTableSchemaMigrationStage > MIGRATION_WRITE_BOTH ) {
+ // If code is using this instead of self::getQueryInfo(), there's
+ // no way the join it's trying to do can work once the old fields
+ // aren't being written anymore.
+ throw new BadMethodCallException(
+ 'Cannot use ' . __METHOD__ . ' when $wgActorTableSchemaMigrationStage > MIGRATION_WRITE_BOTH'
+ );
+ }
+
return [ 'LEFT JOIN', [ 'rev_user != 0', 'user_id = rev_user' ] ];
}
* @return array
*/
public static function selectFields() {
- global $wgContentHandlerUseDB;
+ global $wgContentHandlerUseDB, $wgActorTableSchemaMigrationStage;
+
+ if ( $wgActorTableSchemaMigrationStage > MIGRATION_WRITE_BOTH ) {
+ // If code is using this instead of self::getQueryInfo(), there's a
+ // decent chance it's going to try to directly access
+ // $row->rev_user or $row->rev_user_text and we can't give it
+ // useful values here once those aren't being written anymore.
+ throw new BadMethodCallException(
+ 'Cannot use ' . __METHOD__ . ' when $wgActorTableSchemaMigrationStage > MIGRATION_WRITE_BOTH'
+ );
+ }
wfDeprecated( __METHOD__, '1.31' );
'rev_timestamp',
'rev_user_text',
'rev_user',
+ 'rev_actor' => 'NULL',
'rev_minor_edit',
'rev_deleted',
'rev_len',
* @return array
*/
public static function selectArchiveFields() {
- global $wgContentHandlerUseDB;
+ global $wgContentHandlerUseDB, $wgActorTableSchemaMigrationStage;
+
+ if ( $wgActorTableSchemaMigrationStage > MIGRATION_WRITE_BOTH ) {
+ // If code is using this instead of self::getQueryInfo(), there's a
+ // decent chance it's going to try to directly access
+ // $row->ar_user or $row->ar_user_text and we can't give it
+ // useful values here once those aren't being written anymore.
+ throw new BadMethodCallException(
+ 'Cannot use ' . __METHOD__ . ' when $wgActorTableSchemaMigrationStage > MIGRATION_WRITE_BOTH'
+ );
+ }
wfDeprecated( __METHOD__, '1.31' );
'ar_id',
'ar_page_id',
'ar_rev_id',
- 'ar_text',
'ar_text_id',
'ar_timestamp',
'ar_user_text',
'ar_user',
+ 'ar_actor' => 'NULL',
'ar_minor_edit',
'ar_deleted',
'ar_len',
*/
public function setUserIdAndName( $id, $name ) {
if ( $this->mRecord instanceof MutableRevisionRecord ) {
- $user = new UserIdentityValue( intval( $id ), $name );
+ $user = User::newFromAnyId( intval( $id ), $name, null );
$this->mRecord->setUser( $user );
} else {
throw new MWException( __METHOD__ . ' is not supported on this instance' );
return $this->mRecord->getContent( 'main', $audience, $user );
}
catch ( RevisionAccessException $e ) {
- wfDebugLog(
- 'T184670',
- __METHOD__ . ": Cannot get content: " . $e->getMessage() .
- "\n" . $e->getTraceAsString()
- );
return null;
}
}