aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUmherirrender <umherirrender_de.wp@web.de>2024-05-23 22:34:21 +0200
committerUmherirrender <umherirrender_de.wp@web.de>2024-05-24 16:11:12 +0000
commit57d623f530d09913974ee0675608d1f4ecb46bca (patch)
treebd1d8556d0f0be8133ff426747d7b61638b11c83
parent4114fd26d3882f73b107d744e415e5b4a413b295 (diff)
downloadmediawikicore-57d623f530d09913974ee0675608d1f4ecb46bca.tar.gz
mediawikicore-57d623f530d09913974ee0675608d1f4ecb46bca.zip
Change some type hints from IDatabase to IReadableDatabase
Use narrow interface if no writes are done Change-Id: I55148c8b6fda8830a29a235c63fc118f636ab3e6
-rw-r--r--includes/Revision/RevisionStore.php12
-rw-r--r--includes/SiteStats/SiteStats.php6
-rw-r--r--includes/SiteStats/SiteStatsInit.php6
-rw-r--r--includes/Storage/NameTableStore.php5
-rw-r--r--includes/cache/LinkCache.php8
-rw-r--r--includes/filerepo/file/ArchivedFile.php7
-rw-r--r--includes/jobqueue/JobQueueDB.php9
-rw-r--r--includes/page/PageStore.php3
-rw-r--r--includes/user/User.php4
-rw-r--r--maintenance/rebuildrecentchanges.php3
10 files changed, 32 insertions, 31 deletions
diff --git a/includes/Revision/RevisionStore.php b/includes/Revision/RevisionStore.php
index 6bb6a9656e64..1c641db2dd71 100644
--- a/includes/Revision/RevisionStore.php
+++ b/includes/Revision/RevisionStore.php
@@ -2783,12 +2783,12 @@ class RevisionStore implements RevisionFactory, RevisionLookup, LoggerAwareInter
*
* MCR migration note: this corresponded to Revision::getPreviousRevisionId
*
- * @param IDatabase $db
+ * @param IReadableDatabase $db
* @param RevisionRecord $rev
*
* @return int
*/
- private function getPreviousRevisionId( IDatabase $db, RevisionRecord $rev ) {
+ private function getPreviousRevisionId( IReadableDatabase $db, RevisionRecord $rev ) {
$this->checkDatabaseDomain( $db );
if ( $rev->getPageId( $this->wikiId ) === null ) {
@@ -2881,11 +2881,11 @@ class RevisionStore implements RevisionFactory, RevisionLookup, LoggerAwareInter
*
* MCR migration note: this replaced Revision::countByTitle
*
- * @param IDatabase $db
+ * @param IReadableDatabase $db
* @param PageIdentity $page
* @return int
*/
- public function countRevisionsByTitle( IDatabase $db, PageIdentity $page ) {
+ public function countRevisionsByTitle( IReadableDatabase $db, PageIdentity $page ) {
$id = $this->getArticleId( $page );
if ( $id ) {
return $this->countRevisionsByPageId( $db, $id );
@@ -2904,14 +2904,14 @@ class RevisionStore implements RevisionFactory, RevisionLookup, LoggerAwareInter
* logic in EditPage that uses this seems conceptually dubious. Revision::userWasLastToEdit
* had been deprecated since 1.24 (the Revision class was removed entirely in 1.37).
*
- * @param IDatabase $db The Database to perform the check on.
+ * @param IReadableDatabase $db The Database to perform the check on.
* @param int $pageId The ID of the page in question
* @param int $userId The ID of the user in question
* @param string $since Look at edits since this time
*
* @return bool True if the given user was the only one to edit since the given timestamp
*/
- public function userWasLastToEdit( IDatabase $db, $pageId, $userId, $since ) {
+ public function userWasLastToEdit( IReadableDatabase $db, $pageId, $userId, $since ) {
$this->checkDatabaseDomain( $db );
if ( !$userId ) {
diff --git a/includes/SiteStats/SiteStats.php b/includes/SiteStats/SiteStats.php
index 7a2823cad0c1..149e43e02196 100644
--- a/includes/SiteStats/SiteStats.php
+++ b/includes/SiteStats/SiteStats.php
@@ -27,8 +27,8 @@ use MediaWiki\MainConfigNames;
use MediaWiki\MediaWikiServices;
use stdClass;
use Wikimedia\Rdbms\Database;
-use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\ILoadBalancer;
+use Wikimedia\Rdbms\IReadableDatabase;
/**
* Static accessor class for site_stats and related things
@@ -234,10 +234,10 @@ class SiteStats {
}
/**
- * @param IDatabase $db
+ * @param IReadableDatabase $db
* @return stdClass|false
*/
- private static function doLoadFromDB( IDatabase $db ) {
+ private static function doLoadFromDB( IReadableDatabase $db ) {
$fields = self::selectFields();
$rows = $db->newSelectQueryBuilder()
->select( $fields )
diff --git a/includes/SiteStats/SiteStatsInit.php b/includes/SiteStats/SiteStatsInit.php
index d54719ce3fff..c83330793b64 100644
--- a/includes/SiteStats/SiteStatsInit.php
+++ b/includes/SiteStats/SiteStatsInit.php
@@ -46,7 +46,7 @@ class SiteStatsInit {
/**
* @param bool|IReadableDatabase $database
* - bool: Whether to use the primary DB
- * - IDatabase: Database connection to use
+ * - IReadableDatabase: Database connection to use
*/
public function __construct( $database = false ) {
if ( $database instanceof IReadableDatabase ) {
@@ -133,9 +133,9 @@ class SiteStatsInit {
* Do all updates and commit them. More or less a replacement
* for the original initStats, but without output.
*
- * @param IDatabase|bool $database
+ * @param IReadableDatabase|bool $database
* - bool: Whether to use the primary DB
- * - IDatabase: Database connection to use
+ * - IReadableDatabase: Database connection to use
* @param array $options Array of options, may contain the following values
* - activeUsers bool: Whether to update the number of active users (default: false)
*/
diff --git a/includes/Storage/NameTableStore.php b/includes/Storage/NameTableStore.php
index dc09a64148c8..09dd971b35df 100644
--- a/includes/Storage/NameTableStore.php
+++ b/includes/Storage/NameTableStore.php
@@ -28,6 +28,7 @@ use Wikimedia\LightweightObjectStore\ExpirationAwareness;
use Wikimedia\Rdbms\Database;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\ILoadBalancer;
+use Wikimedia\Rdbms\IReadableDatabase;
use Wikimedia\RequestTimeout\TimeoutException;
/**
@@ -360,11 +361,11 @@ class NameTableStore {
/**
* Gets the table from the db
*
- * @param IDatabase $db
+ * @param IReadableDatabase $db
*
* @return string[]
*/
- private function loadTable( IDatabase $db ) {
+ private function loadTable( IReadableDatabase $db ) {
$result = $db->newSelectQueryBuilder()
->select( [
'id' => $this->idField,
diff --git a/includes/cache/LinkCache.php b/includes/cache/LinkCache.php
index ad0cc69861df..e2479a0321c7 100644
--- a/includes/cache/LinkCache.php
+++ b/includes/cache/LinkCache.php
@@ -41,8 +41,8 @@ use Psr\Log\NullLogger;
use stdClass;
use WANObjectCache;
use Wikimedia\Rdbms\Database;
-use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\ILoadBalancer;
+use Wikimedia\Rdbms\IReadableDatabase;
/**
* Cache for article titles (prefixed DB keys) and ids linked from one source
@@ -470,7 +470,7 @@ class LinkCache implements LoggerAwareInterface {
* @param int $ns
* @param string $dbkey
* @param callable|null $fetchCallback A callback that will retrieve the link row with the
- * signature ( IDatabase $db, int $ns, string $dbkey, array $queryOptions ): ?stdObj.
+ * signature ( IReadableDatabase $db, int $ns, string $dbkey, array $queryOptions ): ?stdObj.
* @param int $queryFlags IDBAccessObject::READ_XXX
*
* @return stdClass|null
@@ -550,13 +550,13 @@ class LinkCache implements LoggerAwareInterface {
}
/**
- * @param IDatabase $db
+ * @param IReadableDatabase $db
* @param int $ns
* @param string $dbkey
* @param array $options Query options, see IDatabase::select() for details.
* @return stdClass|false
*/
- private function fetchPageRow( IDatabase $db, int $ns, string $dbkey, $options = [] ) {
+ private function fetchPageRow( IReadableDatabase $db, int $ns, string $dbkey, $options = [] ) {
$queryBuilder = $db->newSelectQueryBuilder()
->select( self::getSelectFields() )
->from( 'page' )
diff --git a/includes/filerepo/file/ArchivedFile.php b/includes/filerepo/file/ArchivedFile.php
index 5e8cc3122165..90997e2217cd 100644
--- a/includes/filerepo/file/ArchivedFile.php
+++ b/includes/filerepo/file/ArchivedFile.php
@@ -25,7 +25,6 @@ use MediaWiki\Revision\RevisionRecord;
use MediaWiki\Title\Title;
use MediaWiki\User\UserIdentity;
use Wikimedia\Rdbms\Blob;
-use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\IReadableDatabase;
use Wikimedia\Rdbms\SelectQueryBuilder;
@@ -494,10 +493,10 @@ class ArchivedFile {
* returning their addresses.
*
* @internal
- * @param IDatabase $db
+ * @param IReadableDatabase $db
* @return string|Blob
*/
- public function getMetadataForDb( IDatabase $db ) {
+ public function getMetadataForDb( IReadableDatabase $db ) {
$this->load();
if ( !$this->metadataArray && !$this->metadataBlobs ) {
$s = '';
@@ -551,7 +550,7 @@ class ArchivedFile {
/**
* Unserialize a metadata string which came from some non-DB source, or is
- * the return value of IDatabase::decodeBlob().
+ * the return value of IReadableDatabase::decodeBlob().
*
* @since 1.37
* @param string $metadataString
diff --git a/includes/jobqueue/JobQueueDB.php b/includes/jobqueue/JobQueueDB.php
index 8cad5fe3e112..dcc7da5086bc 100644
--- a/includes/jobqueue/JobQueueDB.php
+++ b/includes/jobqueue/JobQueueDB.php
@@ -22,6 +22,7 @@ use Wikimedia\Rdbms\DBConnectionError;
use Wikimedia\Rdbms\DBError;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\IMaintainableDatabase;
+use Wikimedia\Rdbms\IReadableDatabase;
use Wikimedia\Rdbms\SelectQueryBuilder;
use Wikimedia\ScopedCallback;
@@ -815,10 +816,10 @@ class JobQueueDB extends JobQueue {
/**
* @param IJobSpecification $job
- * @param IDatabase $db
+ * @param IReadableDatabase $db
* @return array
*/
- protected function insertFields( IJobSpecification $job, IDatabase $db ) {
+ protected function insertFields( IJobSpecification $job, IReadableDatabase $db ) {
return [
// Fields that describe the nature of the job
'job_cmd' => $job->getType(),
@@ -903,10 +904,10 @@ class JobQueueDB extends JobQueue {
}
/**
- * @param IDatabase $db
+ * @param IReadableDatabase $db
* @return ScopedCallback
*/
- private function getScopedNoTrxFlag( IDatabase $db ) {
+ private function getScopedNoTrxFlag( IReadableDatabase $db ) {
$autoTrx = $db->getFlag( DBO_TRX ); // get current setting
$db->clearFlag( DBO_TRX ); // make each query its own transaction
diff --git a/includes/page/PageStore.php b/includes/page/PageStore.php
index c8fe71a4f5e0..b5a98816ddfe 100644
--- a/includes/page/PageStore.php
+++ b/includes/page/PageStore.php
@@ -16,7 +16,6 @@ use MediaWiki\Title\TitleParser;
use stdClass;
use Wikimedia\Assert\Assert;
use Wikimedia\Parsoid\Core\LinkTarget as ParsoidLinkTarget;
-use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\ILoadBalancer;
use Wikimedia\Rdbms\IReadableDatabase;
use Wikimedia\Stats\StatsFactory;
@@ -202,7 +201,7 @@ class PageStore implements PageLookup {
$row = $this->linkCache->getGoodLinkRow(
$namespace,
$dbKey,
- function ( IDatabase $dbr, $ns, $dbkey, array $options )
+ function ( IReadableDatabase $dbr, $ns, $dbkey, array $options )
use ( $conds, $caller, &$hitOrMiss )
{
$hitOrMiss = 'miss';
diff --git a/includes/user/User.php b/includes/user/User.php
index 79c1049a4b26..d67a9f389003 100644
--- a/includes/user/User.php
+++ b/includes/user/User.php
@@ -1251,11 +1251,11 @@ class User implements Authority, UserIdentity, UserEmailContact {
* protected against race conditions using a compare-and-set (CAS) mechanism
* based on comparing $this->mTouched with the user_touched field.
*
- * @param IDatabase $db
+ * @param IReadableDatabase $db
* @param array $conditions WHERE conditions for use with Database::update
* @return array WHERE conditions for use with Database::update
*/
- protected function makeUpdateConditions( IDatabase $db, array $conditions ) {
+ protected function makeUpdateConditions( IReadableDatabase $db, array $conditions ) {
if ( $this->mTouched ) {
// CAS check: only update if the row wasn't changed since it was loaded.
$conditions['user_touched'] = $db->timestamp( $this->mTouched );
diff --git a/maintenance/rebuildrecentchanges.php b/maintenance/rebuildrecentchanges.php
index 8b99e5d8eee6..aa25858891ae 100644
--- a/maintenance/rebuildrecentchanges.php
+++ b/maintenance/rebuildrecentchanges.php
@@ -26,6 +26,7 @@
require_once __DIR__ . '/Maintenance.php';
use Wikimedia\Rdbms\IDatabase;
+use Wikimedia\Rdbms\IReadableDatabase;
use Wikimedia\Rdbms\SelectQueryBuilder;
/**
@@ -366,7 +367,7 @@ class RebuildRecentchanges extends Maintenance {
/**
* Find rc_id values that have a user with one of the specified groups
*
- * @param IDatabase $db
+ * @param IReadableDatabase $db
* @param string[] $groups
* @param array $conds Extra query conditions
* @return int[]