Aude has uploaded a new change for review.

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

Change subject: Don't include statements diff in wb_changes
......................................................................

Don't include statements diff in wb_changes

These are unused by the change dispatcher and by
change handling in the client.

Serializing and deserializing of statements is costly,
performance-wise, and if we don't need them then
we can omit them.

Bug: T110996
Change-Id: I8f646c16fb24b6f12e22991cb28470eb533427e2
(cherry picked from commit 3160ff902fa06041ecb9e13340352d51afd48844)
---
M lib/includes/changes/EntityChangeFactory.php
M lib/tests/phpunit/changes/EntityChangeFactoryTest.php
2 files changed, 33 insertions(+), 0 deletions(-)


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

diff --git a/lib/includes/changes/EntityChangeFactory.php 
b/lib/includes/changes/EntityChangeFactory.php
index 06d9638..20b186a 100644
--- a/lib/includes/changes/EntityChangeFactory.php
+++ b/lib/includes/changes/EntityChangeFactory.php
@@ -8,6 +8,7 @@
 use Wikibase\DataModel\Entity\EntityDocument;
 use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Services\Diff\EntityDiffer;
+use Wikibase\DataModel\Statement\StatementList;
 use Wikibase\EntityChange;
 use Wikibase\EntityFactory;
 
@@ -131,6 +132,11 @@
                        $theEntity = $newEntity;
                }
 
+               // don't include statements diff, since those are unused and 
not helpful
+               // performance-wise to the dispatcher and change handling.
+               $oldEntity->setStatements( new StatementList() );
+               $newEntity->setStatements( new StatementList() );
+
                $diff = $this->entityDiffer->diffEntities( $oldEntity, 
$newEntity );
 
                /**
diff --git a/lib/tests/phpunit/changes/EntityChangeFactoryTest.php 
b/lib/tests/phpunit/changes/EntityChangeFactoryTest.php
index 50be804..80530d8 100644
--- a/lib/tests/phpunit/changes/EntityChangeFactoryTest.php
+++ b/lib/tests/phpunit/changes/EntityChangeFactoryTest.php
@@ -15,6 +15,8 @@
 use Wikibase\DataModel\Services\Diff\EntityDiffer;
 use Wikibase\DataModel\SiteLink;
 use Wikibase\DataModel\Snak\PropertyNoValueSnak;
+use Wikibase\DataModel\Statement\Statement;
+use Wikibase\DataModel\Statement\StatementList;
 use Wikibase\EntityChange;
 use Wikibase\EntityFactory;
 use Wikibase\Lib\Changes\EntityChangeFactory;
@@ -173,4 +175,29 @@
                );
        }
 
+       public function testNewFromUpdate_excludeStatementsInDiffs() {
+               $factory = $this->getEntityChangeFactory();
+
+               $item = new Item( new ItemId( 'Q3' ) );
+               $statementList = new StatementList( array(
+                       new Statement( new PropertyNoValueSnak( 9000 ) )
+               ) );
+
+               $item->setStatements( $statementList );
+
+               $updatedItem = new Item( new ItemId( 'Q3' ) );
+               $statementList = new StatementList( array(
+                       new Statement( new PropertyNoValueSnak( 10 ) )
+               ) );
+
+               $updatedItem->setStatements( $statementList );
+
+               $change = $factory->newFromUpdate( EntityChange::UPDATE, $item, 
$updatedItem );
+
+               $this->assertTrue(
+                       $change->getDiff()->isEmpty(),
+                       'Diff excludes statement changes and is empty'
+               );
+       }
+
 }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8f646c16fb24b6f12e22991cb28470eb533427e2
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: wmf/1.26wmf20
Gerrit-Owner: Aude <aude.w...@gmail.com>

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

Reply via email to