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

Change subject: Fix indexes for Reference objects.
......................................................................


Fix indexes for Reference objects.

Turns out Flow indexes work very differently from SQL
indexes in that you can't use a covering index, your index
has to match exactly the fields on which you are querying.

Was causing the following error in WMF error logs:

Flow\Data\ObjectLocator::findMulti: No index (out of 2) available
to answer query for ref_src_namespace, ref_src_title with options []

Bug: 65672
Change-Id: Ie4cfab6e5976843fc52e0a9f788a37432c18dccd
---
M container.php
M includes/Data/ReferenceRecorder.php
2 files changed, 8 insertions(+), 15 deletions(-)

Approvals:
  Matthias Mullie: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/container.php b/container.php
index 605d69f..c083da1 100644
--- a/container.php
+++ b/container.php
@@ -769,12 +769,10 @@
                new TopKIndex(
                        $cache,
                        $storage,
-                       'flow_ref:wiki:by-workflow',
+                       'flow_ref:wiki:by-source',
                        array(
                                'ref_src_namespace',
                                'ref_src_title',
-                               'ref_type',
-                               'ref_target_namespace', 'ref_target_title',
                        ),
                        array(
                                'order' => 'ASC',
@@ -784,12 +782,10 @@
                new TopKIndex(
                        $cache,
                        $storage,
-                       'flow_ref:wiki:by-revision',
+                       'flow_ref:wiki:by-revision:v2',
                        array(
-                               'ref_src_namespace',
-                               'ref_src_title',
+                               'ref_src_object_type',
                                'ref_src_object_id',
-                               'ref_type',
                        ),
                        array(
                                'order' => 'ASC',
@@ -826,12 +822,10 @@
                new TopKIndex(
                        $cache,
                        $storage,
-                       'flow_ref:url:by-workflow',
+                       'flow_ref:url:by-source',
                        array(
                                'ref_src_namespace',
                                'ref_src_title',
-                               'ref_type',
-                               'ref_target',
                        ),
                        array(
                                'order' => 'ASC',
@@ -841,12 +835,10 @@
                new TopKIndex(
                        $cache,
                        $storage,
-                       'flow_ref:url:by-revision',
+                       'flow_ref:url:by-revision:v2',
                        array(
-                               'ref_src_namespace',
-                               'ref_src_title',
+                               'ref_src_object_type',
                                'ref_src_object_id',
-                               'ref_type',
                        ),
                        array(
                                'order' => 'ASC',
diff --git a/includes/Data/ReferenceRecorder.php 
b/includes/Data/ReferenceRecorder.php
index 9d20966..6ea0288 100644
--- a/includes/Data/ReferenceRecorder.php
+++ b/includes/Data/ReferenceRecorder.php
@@ -69,12 +69,13 @@
                        'ref_src_object_type' => $revType,
                        'ref_src_object_id' => $objectId,
                ) );
+
                $prevUrlReferences = $this->storage->find( 'URLReference', 
array(
                        'ref_src_object_type' => $revType,
                        'ref_src_object_id' => $objectId,
                ) );
 
-               return array_merge( $prevWikiReferences, $prevUrlReferences );
+               return array_merge( (array) $prevWikiReferences, (array) 
$prevUrlReferences );
        }
 
        /**

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie4cfab6e5976843fc52e0a9f788a37432c18dccd
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/Flow
Gerrit-Branch: master
Gerrit-Owner: Werdna <agarr...@wikimedia.org>
Gerrit-Reviewer: Jdlrobson <jrob...@wikimedia.org>
Gerrit-Reviewer: Matthias Mullie <mmul...@wikimedia.org>
Gerrit-Reviewer: Werdna <agarr...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to