X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/membres/fiche.php?a=blobdiff_plain;f=includes%2Fapi%2FApiQueryContributors.php;h=642c9ac3e56a1e08e39ef4b9bfa6a88726bb369a;hb=d4cc4f2b4f20725725a9345c7a4b7906e5aa66d2;hp=6848fcbd62254ff7fef8af8b6cab727e49c174aa;hpb=6866cfec3731409994b3edf857504e8674c00a8e;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/api/ApiQueryContributors.php b/includes/api/ApiQueryContributors.php index 6848fcbd62..642c9ac3e5 100644 --- a/includes/api/ApiQueryContributors.php +++ b/includes/api/ApiQueryContributors.php @@ -23,6 +23,9 @@ * @since 1.23 */ +use MediaWiki\MediaWikiServices; +use MediaWiki\Revision\RevisionRecord; + /** * A query module to show contributors to a page * @@ -75,14 +78,15 @@ class ApiQueryContributors extends ApiQueryBase { } $result = $this->getResult(); - $revQuery = Revision::getQueryInfo(); + $revQuery = MediaWikiServices::getInstance()->getRevisionStore()->getQueryInfo(); - // For MIGRATION_NEW, target indexes on the revision_actor_temp table. - // Otherwise, revision is fine because it'll have to check all revision rows anyway. - $pageField = $wgActorTableSchemaMigrationStage === MIGRATION_NEW ? 'revactor_page' : 'rev_page'; - $idField = $wgActorTableSchemaMigrationStage === MIGRATION_NEW + // For SCHEMA_COMPAT_READ_NEW, target indexes on the + // revision_actor_temp table, otherwise on the revision table. + $pageField = ( $wgActorTableSchemaMigrationStage & SCHEMA_COMPAT_READ_NEW ) + ? 'revactor_page' : 'rev_page'; + $idField = ( $wgActorTableSchemaMigrationStage & SCHEMA_COMPAT_READ_NEW ) ? 'revactor_actor' : $revQuery['fields']['rev_user']; - $countField = $wgActorTableSchemaMigrationStage === MIGRATION_NEW + $countField = ( $wgActorTableSchemaMigrationStage & SCHEMA_COMPAT_READ_NEW ) ? 'revactor_actor' : $revQuery['fields']['rev_user_text']; // First, count anons @@ -94,7 +98,7 @@ class ApiQueryContributors extends ApiQueryBase { ] ); $this->addWhereFld( $pageField, $pages ); $this->addWhere( ActorMigration::newMigration()->isAnon( $revQuery['fields']['rev_user'] ) ); - $this->addWhere( $db->bitAnd( 'rev_deleted', Revision::DELETED_USER ) . ' = 0' ); + $this->addWhere( $db->bitAnd( 'rev_deleted', RevisionRecord::DELETED_USER ) . ' = 0' ); $this->addOption( 'GROUP BY', $pageField ); $res = $this->select( __METHOD__ ); foreach ( $res as $row ) { @@ -126,7 +130,7 @@ class ApiQueryContributors extends ApiQueryBase { ] ); $this->addWhereFld( $pageField, $pages ); $this->addWhere( ActorMigration::newMigration()->isNotAnon( $revQuery['fields']['rev_user'] ) ); - $this->addWhere( $db->bitAnd( 'rev_deleted', Revision::DELETED_USER ) . ' = 0' ); + $this->addWhere( $db->bitAnd( 'rev_deleted', RevisionRecord::DELETED_USER ) . ' = 0' ); $this->addOption( 'GROUP BY', [ $pageField, $idField ] ); $this->addOption( 'LIMIT', $params['limit'] + 1 );