From c2583290776ee5c7ce72414daffb0840e37a3089 Mon Sep 17 00:00:00 2001 From: Jan Schneider Date: Wed, 5 Jan 2011 16:28:55 +0100 Subject: [PATCH] Implement LIMIT/OFFSET correctly for pgsql. --- framework/Db/lib/Horde/Db/Adapter/Base.php | 4 ++-- framework/Db/lib/Horde/Db/Adapter/Pdo/Pgsql.php | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/framework/Db/lib/Horde/Db/Adapter/Base.php b/framework/Db/lib/Horde/Db/Adapter/Base.php index ce12ef9fe..2cffb21b8 100644 --- a/framework/Db/lib/Horde/Db/Adapter/Base.php +++ b/framework/Db/lib/Horde/Db/Adapter/Base.php @@ -644,10 +644,10 @@ abstract class Horde_Db_Adapter_Base implements Horde_Db_Adapter } /** - * Appends +LIMIT+ and +OFFSET+ options to a SQL statement. + * Appends LIMIT and OFFSET options to a SQL statement. * * @param string $sql SQL statement. - * @param array $options TODO + * @param array $options Hash with 'limit' and (optional) 'offset' values. * * @return string */ diff --git a/framework/Db/lib/Horde/Db/Adapter/Pdo/Pgsql.php b/framework/Db/lib/Horde/Db/Adapter/Pdo/Pgsql.php index 8d306f370..0fa2e4a09 100644 --- a/framework/Db/lib/Horde/Db/Adapter/Pdo/Pgsql.php +++ b/framework/Db/lib/Horde/Db/Adapter/Pdo/Pgsql.php @@ -172,6 +172,25 @@ class Horde_Db_Adapter_Pdo_Pgsql extends Horde_Db_Adapter_Pdo_Base } } + /** + * Appends LIMIT and OFFSET options to a SQL statement. + * + * @param string $sql SQL statement. + * @param array $options Hash with 'limit' and (optional) 'offset' values. + * + * @return string + */ + public function addLimitOffset($sql, $options) + { + if (isset($options['limit']) && $limit = $options['limit']) { + $sql .= " LIMIT $limit"; + } + if (isset($options['offset']) && $offset = $options['offset']) { + $sql .= " OFFSET $offset"; + } + return $sql; + } + /*########################################################################## # Protected -- 2.11.0