diff --git a/plugins/views_plugin_query_default.inc b/plugins/views_plugin_query_default.inc index 0f1a1fe..822b200 100644 --- a/plugins/views_plugin_query_default.inc +++ b/plugins/views_plugin_query_default.inc @@ -1193,7 +1193,9 @@ class views_plugin_query_default extends views_plugin_query { } // This is a formula, using no tables. elseif (empty($field['table'])) { - $non_aggregates[] = $fieldname; + if (!in_array($fieldname, $non_aggregates)) { + $non_aggregates[] = $fieldname; + } $placeholders = !empty($field['placeholders']) ? $field['placeholders'] : array(); $query->addExpression($string, $fieldname, $placeholders); } @@ -1201,10 +1203,15 @@ class views_plugin_query_default extends views_plugin_query { elseif ($this->distinct && !in_array($fieldname, $this->groupby)) { // d7cx: This code was there, apparently needed for PostgreSQL // $string = db_driver() == 'pgsql' ? "FIRST($string)" : $string; + if (!in_array($fieldname, $non_aggregates)) { + $non_aggregates[] = $fieldname; + } $query->addField(!empty($field['table']) ? $field['table'] : $this->base_table, $field['field'], $fieldname); } elseif (empty($field['aggregate'])) { - $non_aggregates[] = $fieldname; + if (!in_array($string, $non_aggregates)) { + $non_aggregates[] = $string; + } $query->addField(!empty($field['table']) ? $field['table'] : $this->base_table, $field['field'], $fieldname); } @@ -1236,7 +1243,7 @@ class views_plugin_query_default extends views_plugin_query { function query($get_count = FALSE) { // Check query distinct value. if (empty($this->no_distinct) && $this->distinct && !empty($this->fields)) { - if ($this->pure_distinct === FALSE){ + if ($this->pure_distinct === FALSE) { $base_field_alias = $this->add_field($this->base_table, $this->base_field); $this->add_groupby($base_field_alias); }