Page MenuHomePhabricator

Migrate usage of Database::select to SelectQueryBuilder in GrowthExperiments
Open, Needs TriagePublic

Description

Now that T243051: A query builder for MediaWiki core is done, this extension should migrate away from IDatabase::select() to SelectQueryBuilder.

It would improve readability of the code, avoids mistakes by passing the wrong order of arguments, etc.

For more information check T243051 and its documentation.

Note that query builder is a different paradigm and changes should not be one-to-one. For example, avoid using joinConds().

Related Objects

View Standalone Graph
This task is connected to more than 200 other tasks. Only direct parents and subtasks are shown here. Use View Standalone Graph to show more of the graph.

Event Timeline

Change 811908 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] DatabaseMentorStore: Move from IDatabase::select

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

Change 811908 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] DatabaseMentorStore: Move from IDatabase::select

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

Change 812407 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] MentorStatusManager: Move away from IDatabase::selectFieldValues

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

Change 812407 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] MentorStatusManager: Move away from IDatabase::selectFieldValues

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

Change 959032 had a related patch set uploaded (by Urbanecm; author: Urbanecm):

[mediawiki/extensions/GrowthExperiments@master] Migrate several IDatabase::select calls

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

Most of entries migrated in https://gerrit.wikimedia.org/r/c/mediawiki/extensions/GrowthExperiments/+/959032 above (thanks @Ladsgroup for the tool)!

Places that are still todo:

  • UncachedMenteeOverviewDataProvider and its mega-queries
    • I did the simple ones in the patch above, but let's leave the really big ones (having hundreds of lines) for a separate patch.
    • How would I migrate queries involving subqueries? It looks like I can just pass a SelectQueryBuilder to join() and call it a day?
  • Impact and its mega-query (migrated the easier part, but let's pay more attention to the bigger one)

Change 959032 merged by jenkins-bot:

[mediawiki/extensions/GrowthExperiments@master] Migrate several IDatabase::select calls

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