Don't issue a bazillion queries to load Differential object lists
Summary: Ref T3496. Currently, we call loadAssets() on each revision table, which invokes a new revision query and a pile of subqueries. Instead, add `needFlags()` and `needDrafts()` to `RevisionQuery`. Some day these could perhaps be more generic. Test Plan: - Viewed home, differential, etc., no longer saw 9203809238 queries being run for no reason. - Drafts and flags still appear properly. Reviewers: btrahan Reviewed By: btrahan CC: aran Maniphest Tasks: T3496 Differential Revision: https://secure.phabricator.com/D8277
This commit is contained in:
@@ -193,7 +193,9 @@ final class PhabricatorHomeMainController
|
||||
->setViewer($user)
|
||||
->withStatus(DifferentialRevisionQuery::STATUS_OPEN)
|
||||
->withResponsibleUsers(array($user_phid))
|
||||
->needRelationships(true);
|
||||
->needRelationships(true)
|
||||
->needFlags(true)
|
||||
->needDrafts(true);
|
||||
|
||||
$revisions = $revision_query->execute();
|
||||
|
||||
@@ -216,8 +218,7 @@ final class PhabricatorHomeMainController
|
||||
->setHighlightAge(true)
|
||||
->setRevisions(array_merge($blocking, $active))
|
||||
->setFields(DifferentialRevisionListView::getDefaultFields($user))
|
||||
->setUser($user)
|
||||
->loadAssets();
|
||||
->setUser($user);
|
||||
$phids = array_merge(
|
||||
array($user_phid),
|
||||
$revision_view->getRequiredHandlePHIDs());
|
||||
|
||||
Reference in New Issue
Block a user