jenkins-bot has submitted this change and it was merged. Change subject: Check if eu_touched field exists ......................................................................
Check if eu_touched field exists e.g. schema change not applied yet, then we need skip this part of the usage tracking update. Bug: T98186 Change-Id: I5b00c96b7aa99286728ff0aab55eedc48bc5aca4 --- M client/includes/Usage/Sql/UsageTableUpdater.php 1 file changed, 30 insertions(+), 4 deletions(-) Approvals: Aude: Looks good to me, approved Daniel Kinzler: Looks good to me, but someone else must approve JanZerebecki: Looks good to me, but someone else must approve jenkins-bot: Verified diff --git a/client/includes/Usage/Sql/UsageTableUpdater.php b/client/includes/Usage/Sql/UsageTableUpdater.php index 7325491..537573b 100644 --- a/client/includes/Usage/Sql/UsageTableUpdater.php +++ b/client/includes/Usage/Sql/UsageTableUpdater.php @@ -31,6 +31,11 @@ private $batchSize; /** + * @var bool + */ + private $hasTouchedField; + + /** * @param DatabaseBase $connection * @param string $tableName * @param int $batchSize @@ -137,7 +142,7 @@ * @param string|false $touched timestamp */ private function touchUsageForPage( $pageId, $touched ) { - if ( $touched === false ) { + if ( $touched === false || !$this->hasTouchedField() ) { return; } @@ -151,6 +156,22 @@ ), __METHOD__ ); + } + + /** + * Check if the usage tracking table has the touched field. + * + * @return bool + */ + private function hasTouchedField() { + if ( !isset( $this->hasTouchedField ) ) { + $this->hasTouchedField = $this->connection->fieldExists( + $this->tableName, + 'eu_touched' + ); + } + + return $this->hasTouchedField; } /** @@ -193,12 +214,17 @@ throw new InvalidArgumentException( '$usages must contain EntityUsage objects.' ); } - $rows[] = array( + $fields = array( 'eu_page_id' => (int)$pageId, 'eu_aspect' => $usage->getAspect(), - 'eu_entity_id' => $usage->getEntityId()->getSerialization(), - 'eu_touched' => wfTimestamp( TS_MW, $touched ), + 'eu_entity_id' => $usage->getEntityId()->getSerialization() ); + + if ( $this->hasTouchedField() ) { + $fields['eu_touched'] = wfTimestamp( TS_MW, $touched ); + } + + $rows[] = $fields; } return $rows; -- To view, visit https://gerrit.wikimedia.org/r/209029 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I5b00c96b7aa99286728ff0aab55eedc48bc5aca4 Gerrit-PatchSet: 3 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: wmf/1.26wmf4 Gerrit-Owner: Aude <aude.w...@gmail.com> Gerrit-Reviewer: Aude <aude.w...@gmail.com> Gerrit-Reviewer: Daniel Kinzler <daniel.kinz...@wikimedia.de> Gerrit-Reviewer: JanZerebecki <jan.wikime...@zerebecki.de> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits