jenkins-bot has submitted this change and it was merged.
Change subject: Category::refreshCounts(): Save new counts using upsert()
......................................................................
Category::refreshCounts(): Save new counts using upsert()
This doesn't completely address the TODO comment. However, I intend
to finish doing so in a separate change.
Change-Id: I71c6dafd4223d79a0153fa8ce7cb0ee1354c0ec6
---
M includes/Category.php
1 file changed, 14 insertions(+), 19 deletions(-)
Approvals:
Aaron Schulz: Looks good to me, approved
jenkins-bot: Verified
diff --git a/includes/Category.php b/includes/Category.php
index 3a21e25..c3e8a4e 100644
--- a/includes/Category.php
+++ b/includes/Category.php
@@ -314,22 +314,6 @@
$dbw = wfGetDB( DB_MASTER );
$dbw->startAtomic( __METHOD__ );
- # Insert the row if it doesn't exist yet (e.g., this is being
run via
- # update.php from a pre-1.16 schema). TODO: This will cause
lots and
- # lots of gaps on some non-MySQL DBMSes if you run
populateCategory.php
- # repeatedly. Plus it's an extra query that's unneeded almost
all the
- # time. This should be rewritten somehow, probably.
- $seqVal = $dbw->nextSequenceValue( 'category_cat_id_seq' );
- $dbw->insert(
- 'category',
- array(
- 'cat_id' => $seqVal,
- 'cat_title' => $this->mName
- ),
- __METHOD__,
- 'IGNORE'
- );
-
$cond1 = $dbw->conditional( array( 'page_namespace' =>
NS_CATEGORY ), 1, 'NULL' );
$cond2 = $dbw->conditional( array( 'page_namespace' => NS_FILE
), 1, 'NULL' );
$result = $dbw->selectRow(
@@ -342,16 +326,27 @@
__METHOD__,
array( 'LOCK IN SHARE MODE' )
);
- $ret = $dbw->update(
+
+ # TODO: This will cause lots and lots of gaps on MySQL unless
+ # innodb_autoinc_lock_mode is 0 (and also on some non-MySQL
+ # DBMSes) if you run populateCategory.php repeatedly.
+ $dbw->upsert(
'category',
+ array(
+ 'cat_title' => $this->mName,
+ 'cat_pages' => $result->pages,
+ 'cat_subcats' => $result->subcats,
+ 'cat_files' => $result->files
+ ),
+ array( 'cat_title' ),
array(
'cat_pages' => $result->pages,
'cat_subcats' => $result->subcats,
'cat_files' => $result->files
),
- array( 'cat_title' => $this->mName ),
__METHOD__
);
+
$dbw->endAtomic( __METHOD__ );
# Now we should update our local counts.
@@ -359,6 +354,6 @@
$this->mSubcats = $result->subcats;
$this->mFiles = $result->files;
- return $ret;
+ return true;
}
}
--
To view, visit https://gerrit.wikimedia.org/r/234480
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I71c6dafd4223d79a0153fa8ce7cb0ee1354c0ec6
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: PleaseStand <[email protected]>
Gerrit-Reviewer: Aaron Schulz <[email protected]>
Gerrit-Reviewer: PleaseStand <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits