1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-27 09:12:41 +01:00

Use LiskDAOSet's loadRelativeEdges with ReleephRequest

Summary:
`ReleephRequest`s contain the PHID for a `PhabricatorRepositoryCommit`, and commits have an edge to a `DifferentialRevision`.

Commits are loaded with the `loadOneRelative()` method that loads the commits for every `ReleephRequest` in a `LiskDAOSet`, but the edges are loaded indivdually.  A page with N RQs on it makes one DB query for the commits, but N queries for the `TYPE_COMMIT_HAS_DREV` edges.

This diff uses `loadRelativeEdges` instead to load the edges all in one query.

Test Plan: {F42290}

Reviewers: wez, epriestley

Reviewed By: epriestley

CC: epriestley, vrana, aran

Maniphest Tasks: T2714

Differential Revision: https://secure.phabricator.com/D5820
This commit is contained in:
Edward Speyer 2013-05-01 10:22:28 +01:00
parent 30b15e094c
commit 5c4a9ac9e5

View file

@ -228,10 +228,13 @@ final class ReleephRequest extends ReleephDAO {
} }
public function loadRequestCommitDiffPHID() { public function loadRequestCommitDiffPHID() {
$revision_phid = PhabricatorEdgeQuery::loadDestinationPHIDs( $commit = $this->loadPhabricatorRepositoryCommit();
$this->getRequestCommitPHID(), if ($commit) {
PhabricatorEdgeConfig::TYPE_COMMIT_HAS_DREV); $edges = $this
return reset($revision_phid); ->loadPhabricatorRepositoryCommit()
->loadRelativeEdges(PhabricatorEdgeConfig::TYPE_COMMIT_HAS_DREV);
return head(array_keys($edges));
}
} }