Refs -- Removed flaky test Ticket19102Tests.test_ticket_19102_distinct_on.
The subquery pushdown only happens because another table is involved in
filter. It's not the distinct usage that causes the pushdown.
The distinct('description').order_by('pk') expression is not valid
because SELECT DISTINCT ON must match initial ORDER BY expressions
which is not the case here.
@@ -291,20 +291,6 @@ class Ticket19102Tests(TestCase):
self.assertFalse(Login.objects.filter(pk=self.l1.pk).exists())
self.assertTrue(Login.objects.filter(pk=self.l2.pk).exists())
- @skipUnlessDBFeature("update_can_self_select")
- @skipUnlessDBFeature('can_distinct_on_fields')
- def test_ticket_19102_distinct_on(self):
- # Both Login objs should have same description so that only the one
- # having smaller PK will be deleted.
- Login.objects.update(description='description')
- with self.assertNumQueries(1):
- Login.objects.distinct('description').order_by('pk').filter(
- orgunit__name__isnull=False
- ).delete()
- # Assumed that l1 which is created first has smaller PK.
- self.assertFalse(Login.objects.filter(pk=self.l1.pk).exists())
- self.assertTrue(Login.objects.filter(pk=self.l2.pk).exists())
-
@skipUnlessDBFeature("update_can_self_select")
def test_ticket_19102_select_related(self):
with self.assertNumQueries(1):
