On Tue, Nov 1, 2011 at 6:19 PM, christian.oudard <christian.oud...@gmail.com
> wrote:

> I am doing a very simple aggregation using the Django ORM, and it is
> producing a GROUP BY clause that includes the data field, which is
> very large, and is slowing down the query by over 100-fold.
>
> Here is a simplified version of the model:
>
> class Document(models.Model):
>    data = models.TextField()
>
> class Attachment(models.Model):
>    document = models.ForeignKey(Document)
>
> And the query I am running:
>
> Document.objects.annotate(num_attachments=Count('attachment'))
>
>
The SQL generated by the ORM for this query changed between Django version
1.2 and 1.3. The 1.2 SQL did a group by only on the id field. With 1.3
we're getting id twice and then all other fields in the model. Bisection
shows the change was made with r14715:

https://code.djangoproject.com/changeset/14715

It certainly looks to me like the old SQL was correct and preferable for
this particular case. In a brief search I did not find a ticket reporting
this issue -- could you open one?

Karen
-- 
http://tracey.org/kmt/

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to