mirror of
https://github.com/silverstripe/silverstripe-postgresql
synced 2024-06-25 22:19:41 +02:00
Enhancement to support returned results from update query
This commit is contained in:
parent
6f4dc4d8d2
commit
d2bb29938d
|
@ -15,7 +15,7 @@ class PostgreSQLQueryBuilder extends DBQueryBuilder {
|
||||||
// Ensure limit is given
|
// Ensure limit is given
|
||||||
$limit = $query->getLimit();
|
$limit = $query->getLimit();
|
||||||
if(empty($limit)) return '';
|
if(empty($limit)) return '';
|
||||||
|
|
||||||
// For literal values return this as the limit SQL
|
// For literal values return this as the limit SQL
|
||||||
if( ! is_array($limit)) {
|
if( ! is_array($limit)) {
|
||||||
return "{$nl}LIMIT $limit";
|
return "{$nl}LIMIT $limit";
|
||||||
|
@ -31,7 +31,7 @@ class PostgreSQLQueryBuilder extends DBQueryBuilder {
|
||||||
if($limit['limit'] === null) {
|
if($limit['limit'] === null) {
|
||||||
$limit['limit'] = 'ALL';
|
$limit['limit'] = 'ALL';
|
||||||
}
|
}
|
||||||
|
|
||||||
$clause = "{$nl}LIMIT {$limit['limit']}";
|
$clause = "{$nl}LIMIT {$limit['limit']}";
|
||||||
if(isset($limit['start']) && is_numeric($limit['start']) && $limit['start'] !== 0) {
|
if(isset($limit['start']) && is_numeric($limit['start']) && $limit['start'] !== 0) {
|
||||||
$clause .= " OFFSET {$limit['start']}";
|
$clause .= " OFFSET {$limit['start']}";
|
||||||
|
@ -39,4 +39,17 @@ class PostgreSQLQueryBuilder extends DBQueryBuilder {
|
||||||
return $clause;
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user