Daniel Kinzler has uploaded a new change for review.

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

Change subject: EntityUsageTable: Wrap insert batches in transactions
......................................................................

EntityUsageTable: Wrap insert batches in transactions

As per jcrespo's comment https://phabricator.wikimedia.org/T107319#1570912

Bug: T107319
Change-Id: I992f0a8bd6494ebc225e80e4cdae830583612478
---
M client/includes/Usage/Sql/EntityUsageTable.php
1 file changed, 18 insertions(+), 10 deletions(-)


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

diff --git a/client/includes/Usage/Sql/EntityUsageTable.php 
b/client/includes/Usage/Sql/EntityUsageTable.php
index f68b864..a229a86 100644
--- a/client/includes/Usage/Sql/EntityUsageTable.php
+++ b/client/includes/Usage/Sql/EntityUsageTable.php
@@ -4,6 +4,7 @@
 
 use ArrayIterator;
 use DatabaseBase;
+use Exception;
 use InvalidArgumentException;
 use Iterator;
 use Wikibase\Client\Usage\EntityUsage;
@@ -131,16 +132,23 @@
         * @param string $touched timestamp
         */
        private function touchUsageBatch( array $rowIds, $touched ) {
-               $this->connection->update(
-                       $this->tableName,
-                       array(
-                               'eu_touched' => wfTimestamp( TS_MW, $touched ),
-                       ),
-                       array(
-                               'eu_row_id' => $rowIds
-                       ),
-                       __METHOD__
-               );
+               $this->connection->begin( __METHOD__ );
+               try {
+                       $this->connection->update(
+                               $this->tableName,
+                               array(
+                                       'eu_touched' => wfTimestamp( TS_MW, 
$touched ),
+                               ),
+                               array(
+                                       'eu_row_id' => $rowIds
+                               ),
+                               __METHOD__
+                       );
+                       $this->connection->commit( __METHOD__ );
+               } catch ( Exception $ex ) {
+                       $this->connection->rollback( __METHOD__ );
+                       throw $ex;
+               }
        }
 
        /**

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I992f0a8bd6494ebc225e80e4cdae830583612478
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Daniel Kinzler <daniel.kinz...@wikimedia.de>

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

Reply via email to