﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
22923	order_by clause missing on nested queryset	Grant Jenks	nobody	"The ORDER BY clause is getting dropped on a nested queryset with the sqlite3 database backend.

Repro steps:

models.py

{{{
from django.db import models

class Report(models.Model):
    modify_time = models.DateTimeField(auto_now=True)
    uuid = models.CharField(max_length=36, unique=True)
    deleted = models.BooleanField(default=False)

class Measure(models.Model):
    report = models.ForeignKey(Report, db_column='report_uuid', to_field='uuid', on_delete=models.CASCADE)
}}}


python manage.py shell

{{{
In [1]: from testtest.models import Report, Measure

In [2]: reports = Report.objects.filter(deleted=False).order_by('-modify_time')[:5]

In [3]: print reports.query
SELECT ""deleteme_report"".""id"", ""deleteme_report"".""modify_time"", ""deleteme_report"".""uuid"", ""deleteme_report"".""deleted"" FROM ""deleteme_report"" WHERE ""deleteme_report"".""deleted"" = False  ORDER BY ""deleteme_report"".""modify_time"" DESC LIMIT 5

In [4]: measures = Measure.objects.filter(report__in=reports)

In [5]: print measures.query
SELECT ""deleteme_measure"".""id"", ""deleteme_measure"".""report_uuid"" FROM ""deleteme_measure"" WHERE ""deleteme_measure"".""report_uuid"" IN (SELECT ""deleteme_report"".""uuid"" FROM ""deleteme_report"" WHERE ""deleteme_report"".""deleted"" = False  LIMIT 5)
}}}

Note that reports.query includes the ORDER BY clause but when nested in measures.query, it is missing.

settings.py is stock from django-admin.py in v1.6 on CPython 2.7.
"	Bug	closed	Database layer (models, ORM)	1.6	Normal	duplicate			Unreviewed	0	0	0	0	0	0
