From 9d28f5fa33d80dee9fa669fa9fcc2369705dd88a Mon Sep 17 00:00:00 2001 From: "Michael J. Rubinsky" Date: Thu, 23 Sep 2010 11:52:20 -0400 Subject: [PATCH] honor the various limit parameters. Slightly messy until the next step of moving to Horde_Db --- jonah/lib/Driver/Sql.php | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/jonah/lib/Driver/Sql.php b/jonah/lib/Driver/Sql.php index 9b83256d9..fe477fd62 100644 --- a/jonah/lib/Driver/Sql.php +++ b/jonah/lib/Driver/Sql.php @@ -444,10 +444,23 @@ class Jonah_Driver_Sql extends Jonah_Driver //@TODO break; } - + $limit = 0; + if (isset($criteria['limit'])) { + $limit = $criteria['limit']; + } + if (isset($criteria['startnumber']) && isset($criteria['endnumber'])) { + $limit = min($criteria['endnumber'] - $criteria['startnumber'], $criteria['limit']); + } + $start = isset($criteria['startnumber']) ? $criteria['startnumber'] : 0; Horde::logMessage('SQL Query by Jonah_Driver_sql::_getStories(): ' . $sql, 'DEBUG'); - $results = $this->_db->getAll($sql, $values, DB_FETCHMODE_ASSOC); - + if ($limit || $start != 0) { + $rows = $this->_db->limitQuery($sql, $start, $limit, $values ); + while ($rows->fetchInto($row, DB_FETCHMODE_ASSOC)) { + $results[] = $row; + } + } else { + $results = $this->_db->getAll($sql, $values, DB_FETCHMODE_ASSOC); + } if ($results instanceof PEAR_Error) { throw new Jonah_Exception($results); } -- 2.11.0