diff --git a/include/class.orm.php b/include/class.orm.php index b8977f0a02c4d3a2fff659b68653892d9f9b0c21..a1328a6fdb03e1b4c7ab8d2bd76aa30112840da2 100644 --- a/include/class.orm.php +++ b/include/class.orm.php @@ -612,7 +612,10 @@ class SqlAggregate extends SqlFunction { } function toSql($compiler, $model=false, $alias=false) { - $options = array('constraint'=>$this->constraint); + $options = array( + 'constraint' => $this->constraint, + 'distinct' => $this->distinct); + list($field) = $compiler->getField($this->expr, $model, $options); return sprintf('%s(%s)%s', $this->func, $field, $alias && $this->alias ? ' AS '.$compiler->quote($this->alias) : ''); @@ -1373,6 +1376,10 @@ class SqlCompiler { $field = $alias.'.'.$this->quote($field); else $field = $this->quote($field); + + if (isset($options['distinct']) && $options['distinct']) + $field = " DISTINCT $field"; + if (isset($options['model']) && $options['model']) $operator = $model; return array($field, $operator);