jenkins-bot has submitted this change and it was merged.

Change subject: Use one query per entity id in getUsedEntityIdStrings
......................................................................


Use one query per entity id in getUsedEntityIdStrings

Bug: T137539
Change-Id: I74bc1c024bf287618879f0805b647ebd6731c254
---
M client/includes/Usage/Sql/EntityUsageTable.php
M client/tests/phpunit/includes/Usage/Sql/EntityUsageTableTest.php
2 files changed, 21 insertions(+), 9 deletions(-)

Approvals:
  Daniel Kinzler: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/client/includes/Usage/Sql/EntityUsageTable.php 
b/client/includes/Usage/Sql/EntityUsageTable.php
index e6392d5..62f25b6 100644
--- a/client/includes/Usage/Sql/EntityUsageTable.php
+++ b/client/includes/Usage/Sql/EntityUsageTable.php
@@ -356,15 +356,27 @@
         * @return string[]
         */
        private function getUsedEntityIdStrings( array $idStrings ) {
-               $where = array( 'eu_entity_id' => $idStrings );
+               $subQueries = [];
 
-               return $this->connection->selectFieldValues(
-                       $this->tableName,
-                       'eu_entity_id',
-                       $where,
-                       __METHOD__,
-                       array( 'DISTINCT' )
-               );
+               foreach ( $idStrings as $idString ) {
+                       $subQueries[] = $this->connection->selectSQLText(
+                               $this->tableName,
+                               'eu_entity_id',
+                               [ 'eu_entity_id' => $idString ],
+                               '',
+                               [ 'LIMIT' => 1 ]
+                       );
+               }
+
+               $values = [];
+               foreach ( $subQueries as $sql ) {
+                       $res = $this->connection->query( $sql, __METHOD__ );
+                       if ( $res->numRows() ) {
+                               $values[] = $res->current()->eu_entity_id;
+                       }
+               }
+
+               return $values;
        }
 
        /**
diff --git a/client/tests/phpunit/includes/Usage/Sql/EntityUsageTableTest.php 
b/client/tests/phpunit/includes/Usage/Sql/EntityUsageTableTest.php
index 8c490bf..31d6d35 100644
--- a/client/tests/phpunit/includes/Usage/Sql/EntityUsageTableTest.php
+++ b/client/tests/phpunit/includes/Usage/Sql/EntityUsageTableTest.php
@@ -306,7 +306,7 @@
 
                $unused = $usageTable->getUnusedEntities( array( $q4, $q6 ) );
                $this->assertCount( 1, $unused );
-               $this->assertEquals( $q6, reset( $unused ), 'Q6 shouold be 
unused' );
+               $this->assertEquals( $q6, reset( $unused ), 'Q6 should be 
unused' );
        }
 
        /**

-- 
To view, visit https://gerrit.wikimedia.org/r/293736
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I74bc1c024bf287618879f0805b647ebd6731c254
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Hoo man <[email protected]>
Gerrit-Reviewer: Aude <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: JanZerebecki <[email protected]>
Gerrit-Reviewer: Jcrespo <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to