Hoo man has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/293736

Change subject: WIP: Use one (sub)query per entity id in getUsedEntityIdStrings
......................................................................

WIP: Use one (sub)query per entity id in getUsedEntityIdStrings

Bug: T137539
Change-Id: I74bc1c024bf287618879f0805b647ebd6731c254
---
M client/includes/Usage/Sql/EntityUsageTable.php
1 file changed, 21 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/36/293736/1

diff --git a/client/includes/Usage/Sql/EntityUsageTable.php 
b/client/includes/Usage/Sql/EntityUsageTable.php
index e6392d5..3c10d50 100644
--- a/client/includes/Usage/Sql/EntityUsageTable.php
+++ b/client/includes/Usage/Sql/EntityUsageTable.php
@@ -356,15 +356,28 @@
         * @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 ],
+                               __METHOD__,
+                               array( 'LIMIT' => 1 )
+                       );
+               }
+
+               $sql = $this->connection->unionQueries( $subQueries, false );
+
+               $res = $this->connection->query( $sql );
+
+               $values = [];
+               foreach ( $res as $row ) {
+                       $values[] = $row->eu_entity_id;
+               }
+
+               return $values;
        }
 
        /**

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I74bc1c024bf287618879f0805b647ebd6731c254
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Hoo man <h...@online.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to