public function execute() { $table = new PhabricatorRepositoryCommit(); $conn_r = $table->establishConnection('r'); $join = $this->buildJoinClause($conn_r); $where = $this->buildWhereClause($conn_r); $order = $this->buildOrderClause($conn_r); $limit = $this->buildLimitClause($conn_r); $data = queryfx_all($conn_r, 'SELECT c.* FROM %T c %Q %Q %Q %Q', $table->getTableName(), $join, $where, $order, $limit); $commits = $table->loadAllFromArray($data); if ($this->needCommitData && $commits) { $data = id(new PhabricatorRepositoryCommitData())->loadAllWhere('commitID in (%Ld)', mpull($commits, 'getID')); $data = mpull($data, null, 'getCommitID'); foreach ($commits as $commit) { if (idx($data, $commit->getID())) { $commit->attachCommitData($data[$commit->getID()]); } else { $commit->attachCommitData(new PhabricatorRepositoryCommitData()); } } } if ($this->needAudits && $commits) { $audits = id(new PhabricatorAuditComment())->loadAllWhere('targetPHID in (%Ls)', mpull($commits, 'getPHID')); $audits = mgroup($audits, 'getTargetPHID'); foreach ($commits as $commit) { $commit->attachAudits(idx($audits, $commit->getPHID(), array())); } } return $commits; }
protected function loadPage() { $table = new PhabricatorRepositoryCommit(); $conn_r = $table->establishConnection('r'); $data = queryfx_all($conn_r, 'SELECT commit.* FROM %T commit %Q %Q %Q %Q %Q', $table->getTableName(), $this->buildJoinClause($conn_r), $this->buildWhereClause($conn_r), $this->buildGroupClause($conn_r), $this->buildOrderClause($conn_r), $this->buildLimitClause($conn_r)); return $table->loadAllFromArray($data); }