aboutsummaryrefslogtreecommitdiffstats
path: root/includes/user
diff options
context:
space:
mode:
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>2023-12-06 18:50:34 +0000
committerGerrit Code Review <gerrit@wikimedia.org>2023-12-06 18:50:34 +0000
commitb1aaaca61ea674b1d7cb984d5b8e36b5ac0bf684 (patch)
treeb5bf6fc5f32db1c9e1e2a764883f9fa3793b9eb1 /includes/user
parent8253727d84b9814761efa9b6a881b46f9958868b (diff)
parent6183896a0f02f4c3c3b5d5654e018a24516ff7be (diff)
downloadmediawikicore-b1aaaca61ea674b1d7cb984d5b8e36b5ac0bf684.tar.gz
mediawikicore-b1aaaca61ea674b1d7cb984d5b8e36b5ac0bf684.zip
Merge "TempUser\Pattern: Use SQL expression builder instead of buildLike()"
Diffstat (limited to 'includes/user')
-rw-r--r--includes/user/TempUser/Pattern.php18
-rw-r--r--includes/user/UserSelectQueryBuilder.php16
2 files changed, 26 insertions, 8 deletions
diff --git a/includes/user/TempUser/Pattern.php b/includes/user/TempUser/Pattern.php
index f49160ee61f3..d02b7d2b4e33 100644
--- a/includes/user/TempUser/Pattern.php
+++ b/includes/user/TempUser/Pattern.php
@@ -2,6 +2,7 @@
namespace MediaWiki\User\TempUser;
+use Wikimedia\Rdbms\LikeValue;
use Wikimedia\Rdbms\Platform\ISQLPlatform;
/**
@@ -61,10 +62,12 @@ class Pattern {
/**
* Convert the pattern to an SQL like clause
*
+ * @deprecated since 1.42. Use toLikeValue() instead
* @param ISQLPlatform $db
* @return string
*/
public function buildLike( ISQLPlatform $db ) {
+ wfDeprecated( __METHOD__, '1.42' );
$this->init();
return $db->buildLike(
$this->prefix,
@@ -74,6 +77,21 @@ class Pattern {
}
/**
+ * Convert the pattern to an SQL builder "LIKE" value that matches it
+ *
+ * @param ISQLPlatform $db
+ * @return LikeValue
+ */
+ public function toLikeValue( ISQLPlatform $db ): LikeValue {
+ $this->init();
+ return new LikeValue(
+ $this->prefix,
+ $db->anyString(),
+ $this->suffix
+ );
+ }
+
+ /**
* Extract the part of the string matching $1, or null if there is no match
*
* @param string $name
diff --git a/includes/user/UserSelectQueryBuilder.php b/includes/user/UserSelectQueryBuilder.php
index e20a6d4acfa3..08480b4b0739 100644
--- a/includes/user/UserSelectQueryBuilder.php
+++ b/includes/user/UserSelectQueryBuilder.php
@@ -211,10 +211,10 @@ class UserSelectQueryBuilder extends SelectQueryBuilder {
return $this;
}
- $this->conds( [
- 'actor_name NOT ' . $this->tempUserConfig->getMatchPattern()
- ->buildLike( $this->db )
- ] );
+ $this->conds(
+ $this->db->expr( 'actor_name', IExpression::NOT_LIKE,
+ $this->tempUserConfig->getMatchPattern()->toLikeValue( $this->db ) )
+ );
return $this;
}
@@ -229,10 +229,10 @@ class UserSelectQueryBuilder extends SelectQueryBuilder {
return $this;
}
- $this->conds( [
- 'actor_name ' . $this->tempUserConfig->getMatchPattern()
- ->buildLike( $this->db )
- ] );
+ $this->conds(
+ $this->db->expr( 'actor_name', IExpression::LIKE,
+ $this->tempUserConfig->getMatchPattern()->toLikeValue( $this->db ) )
+ );
return $this;
}