'deprecatedIn' => null,
],
'img_description' => [
- 'table' => 'image_comment_temp',
- 'pk' => 'imgcomment_name',
- 'field' => 'imgcomment_description_id',
- 'joinPK' => 'img_name',
- 'stage' => MIGRATION_WRITE_NEW,
+ 'stage' => MIGRATION_NEW,
'deprecatedIn' => '1.32',
],
];
*/
protected $key = null;
- /** @var int One of the MIGRATION_* constants */
+ /**
+ * @var int One of the MIGRATION_* constants
+ * @todo Deprecate and remove once extensions seem unlikely to need to use
+ * it for migration anymore.
+ */
protected $stage;
/** @var array[] Cache for `self::getJoin()` */
/**
* @param Language $lang Language to use for comment truncation. Defaults
* to content language.
- * @param int $migrationStage One of the MIGRATION_* constants
+ * @param int $migrationStage One of the MIGRATION_* constants. Always
+ * MIGRATION_NEW for MediaWiki core since 1.33.
*/
public function __construct( Language $lang, $migrationStage ) {
$this->stage = $migrationStage;
* @return CommentStore
*/
public static function newKey( $key ) {
- global $wgCommentTableSchemaMigrationStage;
wfDeprecated( __METHOD__, '1.31' );
- $store = new CommentStore( MediaWikiServices::getInstance()->getContentLanguage(),
- $wgCommentTableSchemaMigrationStage );
+ $store = new CommentStore(
+ MediaWikiServices::getInstance()->getContentLanguage(), MIGRATION_NEW
+ );
$store->key = $key;
return $store;
}
* - fields: (string[]) to include in the `$vars` to `IDatabase->select()`
* - joins: (array) to include in the `$join_conds` to `IDatabase->select()`
* All tables, fields, and joins are aliased, so `+` is safe to use.
+ * @phan-return array{tables:string[],fields:string[],joins:array}
*/
public function getJoin( $key = null ) {
$key = $this->getKey( $key );
if ( $tempTableStage === MIGRATION_OLD ) {
$joinField = "{$alias}.{$t['field']}";
} else {
+ // Nothing hits this code path for now, but will in the future when we set
+ // $this->tempTables['rev_comment']['stage'] to MIGRATION_WRITE_NEW while
+ // merging revision_comment_temp into revision.
+ // @codeCoverageIgnoreStart
$joins[$alias][0] = 'LEFT JOIN';
$joinField = "(CASE WHEN {$key}_id != 0 THEN {$key}_id ELSE {$alias}.{$t['field']} END)";
+ throw new LogicException( 'Nothing should reach this code path at this time' );
+ // @codeCoverageIgnoreEnd
}
} else {
$joinField = "{$key}_id";