Hoo man has uploaded a new change for review.
https://gerrit.wikimedia.org/r/229487
Change subject: Update Wikibase: Fix the dumpJson and the rebuildItemsPerSite
maintenance scripts
......................................................................
Update Wikibase: Fix the dumpJson and the rebuildItemsPerSite maintenance
scripts
Change-Id: I58cb4cfe4df7a1dc35c53b53d25c1790e662b23b
---
M composer.lock
M extensions/Wikibase/lib/includes/serialization/CallbackFactory.php
M extensions/Wikibase/lib/includes/store/sql/SiteLinkTable.php
M extensions/Wikibase/lib/tests/phpunit/store/Sql/SiteLinkTableTest.php
M vendor/composer/installed.json
5 files changed, 37 insertions(+), 10 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikidata
refs/changes/87/229487/1
diff --git a/composer.lock b/composer.lock
index da6ed65..e8c1a25 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1325,7 +1325,7 @@
"source": {
"type": "git",
"url":
"https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Wikibase.git",
- "reference": "dd964136cd6127dc5bfd74a9c46dce75c2d09ea5"
+ "reference": "42fb0141a267d5ed4fc7593b3b29e0102377facd"
},
"require": {
"data-values/common": "~0.2.0",
@@ -1403,7 +1403,7 @@
"issues": "https://phabricator.wikimedia.org/",
"irc": "irc://irc.freenode.net/wikidata"
},
- "time": "2015-08-04 16:45:24"
+ "time": "2015-08-05 19:57:02"
},
{
"name": "wikibase/wikimedia-badges",
diff --git a/extensions/Wikibase/lib/includes/serialization/CallbackFactory.php
b/extensions/Wikibase/lib/includes/serialization/CallbackFactory.php
index 61e6b5d..00b4e2f 100644
--- a/extensions/Wikibase/lib/includes/serialization/CallbackFactory.php
+++ b/extensions/Wikibase/lib/includes/serialization/CallbackFactory.php
@@ -5,6 +5,7 @@
use ApiResult;
use Wikibase\DataModel\Entity\PropertyDataTypeLookup;
use Wikibase\DataModel\Entity\PropertyId;
+use Wikibase\DataModel\Services\Lookup\PropertyNotFoundException;
/**
* @since 0.5
@@ -52,9 +53,13 @@
) {
return function ( $array ) use ( $dataTypeLookup ) {
foreach ( $array as $propertyIdGroupKey => &$snakGroup
) {
- $dataType =
$dataTypeLookup->getDataTypeIdForProperty( new PropertyId( $propertyIdGroupKey
) );
- foreach ( $snakGroup as &$snak ) {
- $snak['datatype'] = $dataType;
+ try{
+ $dataType =
$dataTypeLookup->getDataTypeIdForProperty( new PropertyId( $propertyIdGroupKey
) );
+ foreach ( $snakGroup as &$snak ) {
+ $snak['datatype'] = $dataType;
+ }
+ } catch ( PropertyNotFoundException $e ) {
+ //XXX: shall we set
$serialization['datatype'] = 'bad' ??
}
}
return $array;
@@ -63,8 +68,12 @@
public function getCallbackToAddDataTypeToSnak( PropertyDataTypeLookup
$dataTypeLookup ) {
return function ( $array ) use ( $dataTypeLookup ) {
- $dataType = $dataTypeLookup->getDataTypeIdForProperty(
new PropertyId( $array['property'] ) );
- $array['datatype'] = $dataType;
+ try{
+ $dataType =
$dataTypeLookup->getDataTypeIdForProperty( new PropertyId( $array['property'] )
);
+ $array['datatype'] = $dataType;
+ } catch ( PropertyNotFoundException $e ) {
+ //XXX: shall we set $serialization['datatype']
= 'bad' ??
+ }
return $array;
};
}
diff --git a/extensions/Wikibase/lib/includes/store/sql/SiteLinkTable.php
b/extensions/Wikibase/lib/includes/store/sql/SiteLinkTable.php
index f34516f..bb71d58 100644
--- a/extensions/Wikibase/lib/includes/store/sql/SiteLinkTable.php
+++ b/extensions/Wikibase/lib/includes/store/sql/SiteLinkTable.php
@@ -151,9 +151,12 @@
'ips_site_id' => $link->getSiteId(),
'ips_site_page' => $link->getPageName()
),
- __METHOD__
+ __METHOD__,
+ array( 'IGNORE' )
);
+ $success = $success && $dbw->affectedRows();
+
if ( !$success ) {
break;
}
diff --git
a/extensions/Wikibase/lib/tests/phpunit/store/Sql/SiteLinkTableTest.php
b/extensions/Wikibase/lib/tests/phpunit/store/Sql/SiteLinkTableTest.php
index d19bbda..b04beac 100644
--- a/extensions/Wikibase/lib/tests/phpunit/store/Sql/SiteLinkTableTest.php
+++ b/extensions/Wikibase/lib/tests/phpunit/store/Sql/SiteLinkTableTest.php
@@ -66,6 +66,21 @@
}
/**
+ * @depends testSaveLinksOfItem
+ */
+ public function testSaveLinksOfItem_duplicate() {
+ if ( wfGetDB( DB_MASTER )->getType() === 'sqlite' ) {
+ $this->markTestSkipped( "Duplicated tables don't have
indexes on them in SQLite, thus we can't test uniqueness handling." );
+ }
+
+ $item = new Item( new ItemId( 'Q2' ) );
+ $item->getSiteLinkList()->addNewSiteLink( 'enwiki', 'Beer' );
+
+ $res = $this->siteLinkTable->saveLinksOfItem( $item );
+ $this->assertFalse( $res );
+ }
+
+ /**
* @dataProvider itemProvider
*/
public function testUpdateLinksOfItem() {
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 9ed5df7..6e98d64 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -1417,7 +1417,7 @@
"source": {
"type": "git",
"url":
"https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Wikibase.git",
- "reference": "dd964136cd6127dc5bfd74a9c46dce75c2d09ea5"
+ "reference": "42fb0141a267d5ed4fc7593b3b29e0102377facd"
},
"require": {
"data-values/common": "~0.2.0",
@@ -1446,7 +1446,7 @@
"require-dev": {
"squizlabs/php_codesniffer": "~2.1"
},
- "time": "2015-08-04 13:42:17",
+ "time": "2015-08-05 14:29:05",
"type": "mediawiki-extension",
"installation-source": "source",
"autoload": {
--
To view, visit https://gerrit.wikimedia.org/r/229487
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I58cb4cfe4df7a1dc35c53b53d25c1790e662b23b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikidata
Gerrit-Branch: wmf/1.26wmf16
Gerrit-Owner: Hoo man <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits