Ticket #3566: geoquery_aggregation_fix.diff

File geoquery_aggregation_fix.diff, 1.2 KB (added by jbronn, 6 years ago)
  • django/contrib/gis/db/models/sql/query.py

    diff --git a/django/contrib/gis/db/models/sql/query.py b/django/contrib/gis/db/models/sql/query.py
    index 52f521d..d38045e 100644
    a b class GeoQuery(sql.Query): 
    7878                        col_aliases.add(col[1])
    7979                else:
    8080                    result.append(col.as_sql(quote_func=qn))
     81                   
    8182                    if hasattr(col, 'alias'):
    8283                        aliases.add(col.alias)
    8384                        col_aliases.add(col.alias)
     85
    8486        elif self.default_cols:
    8587            cols, new_aliases = self.get_default_columns(with_aliases,
    8688                    col_aliases)
    8789            result.extend(cols)
    8890            aliases.update(new_aliases)
     91
     92        result.extend([
     93                '%s%s' % (
     94                    aggregate.as_sql(quote_func=qn),
     95                    alias is not None and ' AS %s' % alias or ''
     96                    )
     97                for alias, aggregate in self.aggregate_select.items()
     98                ])
     99
    89100        # This loop customized for GeoQuery.
    90101        if not self.aggregate:
    91102            for (table, col), field in izip(self.related_select_cols, self.related_select_fields):
Back to Top