Page MenuHomePhabricator

D20318.id.diff
No OneTemporary

D20318.id.diff

diff --git a/src/applications/conpherence/query/ConpherenceThreadQuery.php b/src/applications/conpherence/query/ConpherenceThreadQuery.php
--- a/src/applications/conpherence/query/ConpherenceThreadQuery.php
+++ b/src/applications/conpherence/query/ConpherenceThreadQuery.php
@@ -285,23 +285,35 @@
}
private function loadTransactionsAndHandles(array $conpherences) {
- $query = id(new ConpherenceTransactionQuery())
- ->setViewer($this->getViewer())
- ->withObjectPHIDs(array_keys($conpherences))
- ->needHandles(true);
+ // NOTE: This is older code which has been modernized to the minimum
+ // standard required by T13266. It probably isn't the best available
+ // approach to the problems it solves.
+
+ $limit = $this->getTransactionLimit();
+ if ($limit) {
+ // fetch an extra for "show older" scenarios
+ $limit = $limit + 1;
+ } else {
+ $limit = 0xFFFF;
+ }
+
+ $pager = id(new AphrontCursorPagerView())
+ ->setPageSize($limit);
// We have to flip these for the underlying query class. The semantics of
// paging are tricky business.
if ($this->afterTransactionID) {
- $query->setBeforeID($this->afterTransactionID);
+ $pager->setBeforeID($this->afterTransactionID);
} else if ($this->beforeTransactionID) {
- $query->setAfterID($this->beforeTransactionID);
+ $pager->setAfterID($this->beforeTransactionID);
}
- if ($this->getTransactionLimit()) {
- // fetch an extra for "show older" scenarios
- $query->setLimit($this->getTransactionLimit() + 1);
- }
- $transactions = $query->execute();
+
+ $transactions = id(new ConpherenceTransactionQuery())
+ ->setViewer($this->getViewer())
+ ->withObjectPHIDs(array_keys($conpherences))
+ ->needHandles(true)
+ ->executeWithCursorPager($pager);
+
$transactions = mgroup($transactions, 'getObjectPHID');
foreach ($conpherences as $phid => $conpherence) {
$current_transactions = idx($transactions, $phid, array());

File Metadata

Mime Type
text/plain
Expires
Mon, May 13, 7:08 AM (3 w, 2 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6286583
Default Alt Text
D20318.id.diff (1 KB)

Event Timeline