Django

Code

Ticket #3566: geoquery_aggregation_fix.diff

File geoquery_aggregation_fix.diff, 1.2 kB (added by jbronn, 1 year ago)
  • a/django/contrib/gis/db/models/sql/query.py

    old new  
    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):