offset = $offset; return $this; } final public function setLimit($limit) { $this->limit = $limit; return $this; } final protected function buildLimitClause(AphrontDatabaseConnection $conn_r) { if ($this->limit && $this->offset) { return qsprintf($conn_r, 'LIMIT %d, %d', $this->offset, $this->limit); } else if ($this->limit) { return qsprintf($conn_r, 'LIMIT %d', $this->limit); } else if ($this->offset) { return qsprintf($conn_r, 'LIMIT %d, %d', $this->offset, PHP_INT_MAX); } else { return ''; } } final public function executeWithOffsetPager(AphrontPagerView $pager) { $this->setLimit($pager->getPageSize() + 1); $this->setOffset($pager->getOffset()); $results = $this->execute(); return $pager->sliceResults($results); } }