Commit 192d1eb5 authored by Sergey Fedoseev's avatar Sergey Fedoseev Committed by Tim Graham
Browse files

[1.9.x] Fixed #25894 -- Fixed evaluation of zero-length slices of QuerySet.values().

Backport of 69b69f6d from master
parent c402db2e
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -376,8 +376,6 @@ class SQLCompiler(object):
        If 'with_limits' is False, any limit/offset information is not included
        in the query.
        """
        if with_limits and self.query.low_mark == self.query.high_mark:
            return '', ()
        self.subquery = subquery
        refcounts_before = self.query.alias_refcount.copy()
        try:
+3 −0
Original line number Diff line number Diff line
@@ -37,3 +37,6 @@ Bugfixes

* Prevented ``QuerySet.delete()`` from crashing on MySQL when querying across
  relations (:ticket`25882`).

* Fixed evaluation of zero-length slices of ``QuerySet.values()``
  (:ticket:`25894`).
+6 −0
Original line number Diff line number Diff line
@@ -2429,6 +2429,12 @@ class WeirdQuerysetSlicingTests(BaseQuerysetTest):
    def test_empty_sliced_subquery_exclude(self):
        self.assertEqual(Eaten.objects.exclude(food__in=Food.objects.all()[0:0]).count(), 1)

    def test_zero_length_values_slicing(self):
        n = 42
        with self.assertNumQueries(0):
            self.assertQuerysetEqual(Article.objects.values()[n:n], [])
            self.assertQuerysetEqual(Article.objects.values_list()[n:n], [])


class EscapingTests(TestCase):
    def test_ticket_7302(self):