diff options
author | jenkins-bot <jenkins-bot@gerrit.wikimedia.org> | 2023-12-06 18:50:34 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@wikimedia.org> | 2023-12-06 18:50:34 +0000 |
commit | b1aaaca61ea674b1d7cb984d5b8e36b5ac0bf684 (patch) | |
tree | b5bf6fc5f32db1c9e1e2a764883f9fa3793b9eb1 /includes/user | |
parent | 8253727d84b9814761efa9b6a881b46f9958868b (diff) | |
parent | 6183896a0f02f4c3c3b5d5654e018a24516ff7be (diff) | |
download | mediawikicore-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.php | 18 | ||||
-rw-r--r-- | includes/user/UserSelectQueryBuilder.php | 16 |
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; } |