Page MenuHomePhabricator

Use $dbr variable name convention for database objects doing read queries
Closed, ResolvedPublic2 Estimated Story Points

Description

MediaWiki uses a database abstraction layer, via the Wikimedia\Rdbms\Database class, as documented here: https://www.mediawiki.org/wiki/Manual:Database_access#Database_Abstraction_Layer

Wikimedia production sites use a primary database and replica databases. For performance reasons, read queries use the replica databases. By convention, for instances of the Database class performing read queries, the variable $dbr is used (as opposed to $dbw for write queries).

The Special:Investigate feature uses the variable name $db in several places, where $dbr should be used instead.

Affected classes: TimelineRowFormatter, CompareService, PreliminaryCheckService.

Acceptance criteria
  • In the affected classes, where the replicas are being read, change the variable name from $db to $dbr.

Event Timeline

Restricted Application added a subscriber: Aklapper. ยท View Herald TranscriptAug 26 2022, 11:28 AM
Tchanders set the point value for this task to 2.Sep 1 2022, 7:54 PM

Change 830577 had a related patch set uploaded (by Cyndywikime; author: Cyndywikime):

[mediawiki/extensions/CheckUser@master] Use $dbr variable for database objects doing read queries

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

Change 830577 abandoned by Cyndywikime:

[mediawiki/extensions/CheckUser@master] Use $dbr variable for database objects doing read queries

Reason:

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

Change 830615 had a related patch set uploaded (by Cyndywikime; author: Cyndywikime):

[mediawiki/extensions/CheckUser@master] Use $dbr variable for database objects doing read queries

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

Change 830615 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] Use $dbr variable for database objects doing read queries

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

dom_walden subscribed.

I did some basic regression testing of all the functionality of Special:Investigate which reads from the database (as far as I know). It appeared to work and there were no errors on the page or in the logs.

Test environment: Local docker CheckUser 2.5 (aea1ef3) 06:33, 20 September 2022.