From d2bb29938dec2e6c1e32b65147a19c934691ab6c Mon Sep 17 00:00:00 2001 From: Colm McBarron Date: Thu, 16 Feb 2017 11:33:51 +0000 Subject: [PATCH] Enhancement to support returned results from update query --- code/PostgreSQLQueryBuilder.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/code/PostgreSQLQueryBuilder.php b/code/PostgreSQLQueryBuilder.php index 1ea071b..70d5434 100644 --- a/code/PostgreSQLQueryBuilder.php +++ b/code/PostgreSQLQueryBuilder.php @@ -15,7 +15,7 @@ class PostgreSQLQueryBuilder extends DBQueryBuilder { // Ensure limit is given $limit = $query->getLimit(); if(empty($limit)) return ''; - + // For literal values return this as the limit SQL if( ! is_array($limit)) { return "{$nl}LIMIT $limit"; @@ -31,7 +31,7 @@ class PostgreSQLQueryBuilder extends DBQueryBuilder { if($limit['limit'] === null) { $limit['limit'] = 'ALL'; } - + $clause = "{$nl}LIMIT {$limit['limit']}"; if(isset($limit['start']) && is_numeric($limit['start']) && $limit['start'] !== 0) { $clause .= " OFFSET {$limit['start']}"; @@ -39,4 +39,17 @@ class PostgreSQLQueryBuilder extends DBQueryBuilder { return $clause; } + /** + * Adds a specific PostgreSQL command that returns the affected rows when the 'Update' query is run + * + * @param SQLUpdate $query + * @param array $parameters + * @return string + */ + protected function buildUpdateQuery(SQLUpdate $query, array &$parameters) { + $sql = parent::buildUpdateQuery($query, $parameters); + $sql .= ' RETURNING *'; + return $sql; + } + }