aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--includes/api/ApiQueryUserContribs.php4
-rw-r--r--includes/specials/pagers/ContribsPager.php5
-rw-r--r--maintenance/migrateExternallinks.php5
-rw-r--r--maintenance/migrateLinksTable.php8
-rw-r--r--maintenance/migrateUserGroup.php9
-rw-r--r--maintenance/populateBacklinkNamespace.php5
-rw-r--r--maintenance/populateIpChanges.php6
-rw-r--r--maintenance/populateRevisionSha1.php10
-rw-r--r--maintenance/rebuildFileCache.php5
-rw-r--r--maintenance/rebuildtextindex.php6
-rw-r--r--maintenance/refreshLinks.php13
-rw-r--r--maintenance/storage/checkStorage.php5
-rw-r--r--maintenance/storage/fixLegacyEncoding.php11
-rw-r--r--maintenance/storage/moveToExternal.php8
-rw-r--r--maintenance/updateSearchIndex.php3
15 files changed, 67 insertions, 36 deletions
diff --git a/includes/api/ApiQueryUserContribs.php b/includes/api/ApiQueryUserContribs.php
index 11437e0b5907..af7b2f2c5e9d 100644
--- a/includes/api/ApiQueryUserContribs.php
+++ b/includes/api/ApiQueryUserContribs.php
@@ -244,9 +244,7 @@ class ApiQueryUserContribs extends ApiQueryBase {
$res = $dbSecondary->newSelectQueryBuilder()
->select( 'ipc_hex' )
->from( 'ip_changes' )
- ->where( [ 'ipc_hex BETWEEN ' . $dbSecondary->addQuotes( $start ) .
- ' AND ' . $dbSecondary->addQuotes( $end )
- ] )
+ ->where( $dbSecondary->expr( 'ipc_hex', '>=', $start )->and( 'ipc_hex', '<=', $end ) )
->groupBy( 'ipc_hex' )
->orderBy( 'ipc_hex', $sort )
->limit( $limit )
diff --git a/includes/specials/pagers/ContribsPager.php b/includes/specials/pagers/ContribsPager.php
index ee6272ae9810..f6b5819f7e0f 100644
--- a/includes/specials/pagers/ContribsPager.php
+++ b/includes/specials/pagers/ContribsPager.php
@@ -50,6 +50,7 @@ use stdClass;
use Wikimedia\IPUtils;
use Wikimedia\Rdbms\FakeResultWrapper;
use Wikimedia\Rdbms\IConnectionProvider;
+use Wikimedia\Rdbms\IExpression;
use Wikimedia\Rdbms\IReadableDatabase;
use Wikimedia\Rdbms\IResultWrapper;
@@ -457,7 +458,7 @@ class ContribsPager extends RangeChronologicalPager {
* Get SQL conditions for an IP range, if applicable
* @param IReadableDatabase $db
* @param string $ip The IP address or CIDR
- * @return string|false SQL for valid IP ranges, false if invalid
+ * @return IExpression|false SQL for valid IP ranges, false if invalid
*/
private function getIpRangeConds( $db, $ip ) {
// First make sure it is a valid range and they are not outside the CIDR limit
@@ -467,7 +468,7 @@ class ContribsPager extends RangeChronologicalPager {
[ $start, $end ] = IPUtils::parseRange( $ip );
- return 'ipc_hex BETWEEN ' . $db->addQuotes( $start ) . ' AND ' . $db->addQuotes( $end );
+ return $db->expr( 'ipc_hex', '>=', $start )->and( 'ipc_hex', '<=', $end );
}
/**
diff --git a/maintenance/migrateExternallinks.php b/maintenance/migrateExternallinks.php
index b07868b80fcd..e6e7cff878b2 100644
--- a/maintenance/migrateExternallinks.php
+++ b/maintenance/migrateExternallinks.php
@@ -69,7 +69,7 @@ class MigrateExternallinks extends LoggedUpdateMaintenance {
private function handleBatch( $lowId ) {
$batchSize = $this->getBatchSize();
- // BETWEEN is inclusive, let's subtract one.
+ // range is inclusive, let's subtract one.
$highId = $lowId + $batchSize - 1;
$dbw = $this->getPrimaryDB();
$updated = 0;
@@ -78,7 +78,8 @@ class MigrateExternallinks extends LoggedUpdateMaintenance {
->from( 'externallinks' )
->where( [
'el_to_domain_index' => '',
- "el_id BETWEEN $lowId AND $highId"
+ $dbw->expr( 'el_id', '>=', $lowId ),
+ $dbw->expr( 'el_id', '<=', $highId ),
] )
->limit( $batchSize )
->caller( __METHOD__ )
diff --git a/maintenance/migrateLinksTable.php b/maintenance/migrateLinksTable.php
index e2528e16b0ca..c7ade06e8166 100644
--- a/maintenance/migrateLinksTable.php
+++ b/maintenance/migrateLinksTable.php
@@ -90,7 +90,7 @@ class MigrateLinksTable extends LoggedUpdateMaintenance {
$batchSize = $this->getBatchSize();
$targetColumn = $mapping[$table]['target_id'];
$pageIdColumn = $mapping[$table]['page_id'];
- // BETWEEN is inclusive, let's subtract one.
+ // range is inclusive, let's subtract one.
$highPageId = $lowPageId + $batchSize - 1;
$dbw = $this->getPrimaryDB();
$updated = 0;
@@ -101,7 +101,8 @@ class MigrateLinksTable extends LoggedUpdateMaintenance {
->from( $table )
->where( [
$targetColumn => [ null, 0 ],
- "$pageIdColumn BETWEEN $lowPageId AND $highPageId"
+ $dbw->expr( $pageIdColumn, '>=', $lowPageId ),
+ $dbw->expr( $pageIdColumn, '<=', $highPageId ),
] )
->limit( 1 )
->caller( __METHOD__ )
@@ -123,7 +124,8 @@ class MigrateLinksTable extends LoggedUpdateMaintenance {
$targetColumn => [ null, 0 ],
$mapping[$table]['ns'] => $ns,
$mapping[$table]['title'] => $titleString,
- "$pageIdColumn BETWEEN $lowPageId AND $highPageId"
+ $dbw->expr( $pageIdColumn, '>=', $lowPageId ),
+ $dbw->expr( $pageIdColumn, '<=', $highPageId ),
] )
->caller( __METHOD__ )->execute();
$updatedInThisBatch = $dbw->affectedRows();
diff --git a/maintenance/migrateUserGroup.php b/maintenance/migrateUserGroup.php
index 91fce7bf5bac..e17f393e3229 100644
--- a/maintenance/migrateUserGroup.php
+++ b/maintenance/migrateUserGroup.php
@@ -74,7 +74,8 @@ class MigrateUserGroup extends Maintenance {
->set( [ 'ug_group' => $newGroup ] )
->where( [
'ug_group' => $oldGroup,
- "ug_user BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd
+ $dbw->expr( 'ug_user', '>=', (int)$blockStart ),
+ $dbw->expr( 'ug_user', '<=', (int)$blockEnd ),
] )
->caller( __METHOD__ )->execute();
$affected += $dbw->affectedRows();
@@ -86,7 +87,8 @@ class MigrateUserGroup extends Maintenance {
->deleteFrom( 'user_groups' )
->where( [
'ug_group' => $oldGroup,
- "ug_user BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd
+ $dbw->expr( 'ug_user', '>=', (int)$blockStart ),
+ $dbw->expr( 'ug_user', '<=', (int)$blockEnd ),
] )
->caller( __METHOD__ )->execute();
$affected += $dbw->affectedRows();
@@ -101,7 +103,8 @@ class MigrateUserGroup extends Maintenance {
->from( 'user_groups' )
->where( [
'ug_group' => $newGroup,
- "ug_user BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd
+ $dbw->expr( 'ug_user', '>=', (int)$blockStart ),
+ $dbw->expr( 'ug_user', '<=', (int)$blockEnd ),
] )
->caller( __METHOD__ )->fetchResultSet();
if ( $res !== false ) {
diff --git a/maintenance/populateBacklinkNamespace.php b/maintenance/populateBacklinkNamespace.php
index c7947097dca9..f2410fc487d1 100644
--- a/maintenance/populateBacklinkNamespace.php
+++ b/maintenance/populateBacklinkNamespace.php
@@ -74,7 +74,10 @@ class PopulateBacklinkNamespace extends LoggedUpdateMaintenance {
$res = $db->newSelectQueryBuilder()
->select( [ 'page_id', 'page_namespace' ] )
->from( 'page' )
- ->where( "page_id BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd )
+ ->where( [
+ $db->expr( 'page_id', '>=', (int)$blockStart ),
+ $db->expr( 'page_id', '<=', (int)$blockEnd ),
+ ] )
->caller( __METHOD__ )->fetchResultSet();
foreach ( $res as $row ) {
$db->newUpdateQueryBuilder()
diff --git a/maintenance/populateIpChanges.php b/maintenance/populateIpChanges.php
index 6d869b69fbee..f1f7f08c32c8 100644
--- a/maintenance/populateIpChanges.php
+++ b/maintenance/populateIpChanges.php
@@ -100,7 +100,11 @@ TEXT
$rows = $dbr->select(
[ 'revision' ] + $actorQuery['tables'],
[ 'rev_id', 'rev_timestamp', 'rev_user_text' => $actorQuery['fields']['rev_user_text'] ],
- [ "rev_id BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd, $revUserIsAnon ],
+ [
+ $dbr->expr( 'rev_id', '>=', (int)$blockStart ),
+ $dbr->expr( 'rev_id', '<=', (int)$blockEnd ),
+ $revUserIsAnon
+ ],
__METHOD__,
[],
$actorQuery['joins']
diff --git a/maintenance/populateRevisionSha1.php b/maintenance/populateRevisionSha1.php
index 716a82d00e2a..45166df1490a 100644
--- a/maintenance/populateRevisionSha1.php
+++ b/maintenance/populateRevisionSha1.php
@@ -106,11 +106,11 @@ class PopulateRevisionSha1 extends LoggedUpdateMaintenance {
while ( $blockEnd <= $end ) {
$this->output( "...doing $idCol from $blockStart to $blockEnd\n" );
- $cond = "$idCol BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd .
- " AND $idCol IS NOT NULL AND {$prefix}_sha1 = ''";
-
- $res = $queryBuilder->where( $cond )
- ->caller( __METHOD__ )->fetchResultSet();
+ $res = $queryBuilder->where( [
+ $db->expr( $idCol, '>=', (int)$blockStart )->and( $idCol, '<=', (int)$blockEnd ),
+ $db->expr( $idCol, '!=', null ),
+ "{$prefix}_sha1" => '',
+ ] )->caller( __METHOD__ )->fetchResultSet();
$this->beginTransaction( $db, __METHOD__ );
foreach ( $res as $row ) {
diff --git a/maintenance/rebuildFileCache.php b/maintenance/rebuildFileCache.php
index b9d04156d978..f1df3bc404fb 100644
--- a/maintenance/rebuildFileCache.php
+++ b/maintenance/rebuildFileCache.php
@@ -126,7 +126,10 @@ class RebuildFileCache extends Maintenance {
->from( 'page' )
->useIndex( 'PRIMARY' )
->where( $where )
- ->andWhere( [ "page_id BETWEEN " . (int)$blockStart . " AND " . (int)$blockEnd ] )
+ ->andWhere( [
+ $dbr->expr( 'page_id', '>=', (int)$blockStart ),
+ $dbr->expr( 'page_id', '<=', (int)$blockEnd ),
+ ] )
->orderBy( 'page_id', SelectQueryBuilder::SORT_ASC )
->caller( __METHOD__ )->fetchResultSet();
diff --git a/maintenance/rebuildtextindex.php b/maintenance/rebuildtextindex.php
index 6cfed8e923a1..2bafe87a50ea 100644
--- a/maintenance/rebuildtextindex.php
+++ b/maintenance/rebuildtextindex.php
@@ -101,8 +101,10 @@ class RebuildTextIndex extends Maintenance {
}
$end = $n + self::RTI_CHUNK_SIZE - 1;
$queryBuilder = clone $queryBuilderTemplate;
- $res = $queryBuilder->where( [ "page_id BETWEEN $n AND $end", 'page_latest = rev_id' ] )
- ->caller( __METHOD__ )->fetchResultSet();
+ $res = $queryBuilder->where( [
+ $dbw->expr( 'page_id', '>=', $n )->and( 'page_id', '<=', $end ),
+ 'page_latest = rev_id'
+ ] )->caller( __METHOD__ )->fetchResultSet();
foreach ( $res as $s ) {
diff --git a/maintenance/refreshLinks.php b/maintenance/refreshLinks.php
index f986a97a1fcd..a61711beef2c 100644
--- a/maintenance/refreshLinks.php
+++ b/maintenance/refreshLinks.php
@@ -23,6 +23,7 @@ use MediaWiki\Linker\LinkTarget;
use MediaWiki\MediaWikiServices;
use MediaWiki\Revision\RevisionRecord;
use MediaWiki\Title\Title;
+use Wikimedia\Rdbms\IExpression;
use Wikimedia\Rdbms\IReadableDatabase;
use Wikimedia\Rdbms\SelectQueryBuilder;
@@ -359,7 +360,7 @@ class RefreshLinks extends Maintenance {
}
/**
- * Build a SQL expression for a closed interval (i.e. BETWEEN).
+ * Build a SQL expression for a closed interval.
*
* By specifying a null $start or $end, it is also possible to create
* half-bounded or unbounded intervals using this function.
@@ -368,17 +369,17 @@ class RefreshLinks extends Maintenance {
* @param string $var Field name
* @param mixed $start First value to include or null
* @param mixed $end Last value to include or null
- * @return string
+ * @return IExpression
*/
private static function intervalCond( IReadableDatabase $db, $var, $start, $end ) {
if ( $start === null && $end === null ) {
- return "$var IS NOT NULL";
+ return $db->expr( $var, '!=', null );
} elseif ( $end === null ) {
- return "$var >= " . $db->addQuotes( $start );
+ return $db->expr( $var, '>=', $start );
} elseif ( $start === null ) {
- return "$var <= " . $db->addQuotes( $end );
+ return $db->expr( $var, '<=', $end );
} else {
- return "$var BETWEEN " . $db->addQuotes( $start ) . ' AND ' . $db->addQuotes( $end );
+ return $db->expr( $var, '>=', $start )->and( $var, '<=', $end );
}
}
diff --git a/maintenance/storage/checkStorage.php b/maintenance/storage/checkStorage.php
index 400ddff9dc7c..e28ddc17639e 100644
--- a/maintenance/storage/checkStorage.php
+++ b/maintenance/storage/checkStorage.php
@@ -98,7 +98,10 @@ class CheckStorage extends Maintenance {
->select( [ 'slot_revision_id', 'content_address' ] )
->from( 'slots' )
->join( 'content', null, 'content_id = slot_content_id' )
- ->where( [ "slot_revision_id BETWEEN $chunkStart AND $chunkEnd" ] )
+ ->where( [
+ $dbr->expr( 'slot_revision_id', '>=', $chunkStart ),
+ $dbr->expr( 'slot_revision_id', '<=', $chunkEnd ),
+ ] )
->caller( __METHOD__ )->fetchResultSet();
/** @var \MediaWiki\Storage\SqlBlobStore $blobStore */
$blobStore = $this->getServiceContainer()->getBlobStore();
diff --git a/maintenance/storage/fixLegacyEncoding.php b/maintenance/storage/fixLegacyEncoding.php
index c88fe712fd94..bc6658296c4b 100644
--- a/maintenance/storage/fixLegacyEncoding.php
+++ b/maintenance/storage/fixLegacyEncoding.php
@@ -20,6 +20,8 @@
*/
use MediaWiki\Storage\SqlBlobStore;
+use Wikimedia\Rdbms\IExpression;
+use Wikimedia\Rdbms\LikeValue;
require_once __DIR__ . '/moveToExternal.php';
@@ -31,9 +33,12 @@ class FixLegacyEncoding extends MoveToExternal {
protected function getConditions( $blockStart, $blockEnd, $dbr ) {
return [
- "old_id BETWEEN $blockStart AND $blockEnd",
- 'old_flags NOT ' . $dbr->buildLike( $dbr->anyString(), 'utf-8', $dbr->anyString() ),
- 'old_flags NOT ' . $dbr->buildLike( $dbr->anyString(), 'utf8', $dbr->anyString() ),
+ $dbr->expr( 'old_id', '>=', $blockStart ),
+ $dbr->expr( 'old_id', '<=', $blockEnd ),
+ $dbr->expr( 'old_flags', IExpression::NOT_LIKE,
+ new LikeValue( $dbr->anyString(), 'utf-8', $dbr->anyString() ) ),
+ $dbr->expr( 'old_flags', IExpression::NOT_LIKE,
+ new LikeValue( $dbr->anyString(), 'utf8', $dbr->anyString() ) ),
];
}
diff --git a/maintenance/storage/moveToExternal.php b/maintenance/storage/moveToExternal.php
index 508dc22fdd99..3483ccc23218 100644
--- a/maintenance/storage/moveToExternal.php
+++ b/maintenance/storage/moveToExternal.php
@@ -25,6 +25,8 @@ use MediaWiki\MainConfigNames;
use MediaWiki\Maintenance\UndoLog;
use MediaWiki\Storage\SqlBlobStore;
use Wikimedia\AtEase\AtEase;
+use Wikimedia\Rdbms\IExpression;
+use Wikimedia\Rdbms\LikeValue;
require_once __DIR__ . '/../Maintenance.php';
@@ -320,8 +322,10 @@ class MoveToExternal extends Maintenance {
protected function getConditions( $blockStart, $blockEnd, $dbr ) {
return [
- "old_id BETWEEN $blockStart AND $blockEnd",
- 'old_flags NOT ' . $dbr->buildLike( $dbr->anyString(), 'external', $dbr->anyString() ),
+ $dbr->expr( 'old_id', '>=', $blockStart ),
+ $dbr->expr( 'old_id', '>=', $blockEnd ),
+ $dbr->expr( 'old_flags', IExpression::NOT_LIKE,
+ new LikeValue( $dbr->anyString(), 'external', $dbr->anyString() ) ),
];
}
diff --git a/maintenance/updateSearchIndex.php b/maintenance/updateSearchIndex.php
index 0dc2c63267c6..9722dcd28889 100644
--- a/maintenance/updateSearchIndex.php
+++ b/maintenance/updateSearchIndex.php
@@ -106,7 +106,8 @@ class UpdateSearchIndex extends Maintenance {
->join( 'page', null, 'rc_cur_id=page_id AND rc_this_oldid=page_latest' )
->where( [
$dbw->expr( 'rc_type', '!=', RC_LOG ),
- 'rc_timestamp BETWEEN ' . $dbw->addQuotes( $start ) . ' AND ' . $dbw->addQuotes( $end )
+ $dbw->expr( 'rc_timestamp', '>=', $start ),
+ $dbw->expr( 'rc_timestamp', '<=', $end ),
] )
->caller( __METHOD__ )->fetchResultSet();