Loading django/db/models/sql/expressions.py +1 −0 Original line number Diff line number Diff line Loading @@ -108,6 +108,7 @@ class SQLEvaluator(object): def evaluate_date_modifier_node(self, node, qn, connection): timedelta = node.children.pop() sql, params = self.evaluate_node(node, qn, connection) node.children.append(timedelta) if timedelta.days == 0 and timedelta.seconds == 0 and \ timedelta.microseconds == 0: Loading docs/releases/1.6.3.txt +4 −0 Original line number Diff line number Diff line Loading @@ -14,3 +14,7 @@ several bugs in 1.6.2: * Fixed ``AttributeError`` when using :meth:`~django.db.models.query.QuerySet.bulk_create` with ``ForeignObject`` (`#21566 <http://code.djangoproject.com/ticket/21566>`_). * Fixed crash of ``QuerySet``\s that use ``F() + timedelta()`` when their query was compiled more once (`#21643 <http://code.djangoproject.com/ticket/21643>`_). tests/expressions_regress/tests.py +14 −0 Original line number Diff line number Diff line Loading @@ -259,6 +259,20 @@ class FTimeDeltaTests(TestCase): self.days_long.append(e4.completed-e4.assigned) self.expnames = [e.name for e in Experiment.objects.all()] def test_multiple_query_compilation(self): # Ticket #21643 queryset = Experiment.objects.filter(end__lt=F('start') + datetime.timedelta(hours=1)) q1 = str(queryset.query) q2 = str(queryset.query) self.assertEqual(q1, q2) def test_query_clone(self): # Ticket #21643 qs = Experiment.objects.filter(end__lt=F('start') + datetime.timedelta(hours=1)) qs2 = qs.all() list(qs) list(qs2) def test_delta_add(self): for i in range(len(self.deltas)): delta = self.deltas[i] Loading Loading
django/db/models/sql/expressions.py +1 −0 Original line number Diff line number Diff line Loading @@ -108,6 +108,7 @@ class SQLEvaluator(object): def evaluate_date_modifier_node(self, node, qn, connection): timedelta = node.children.pop() sql, params = self.evaluate_node(node, qn, connection) node.children.append(timedelta) if timedelta.days == 0 and timedelta.seconds == 0 and \ timedelta.microseconds == 0: Loading
docs/releases/1.6.3.txt +4 −0 Original line number Diff line number Diff line Loading @@ -14,3 +14,7 @@ several bugs in 1.6.2: * Fixed ``AttributeError`` when using :meth:`~django.db.models.query.QuerySet.bulk_create` with ``ForeignObject`` (`#21566 <http://code.djangoproject.com/ticket/21566>`_). * Fixed crash of ``QuerySet``\s that use ``F() + timedelta()`` when their query was compiled more once (`#21643 <http://code.djangoproject.com/ticket/21643>`_).
tests/expressions_regress/tests.py +14 −0 Original line number Diff line number Diff line Loading @@ -259,6 +259,20 @@ class FTimeDeltaTests(TestCase): self.days_long.append(e4.completed-e4.assigned) self.expnames = [e.name for e in Experiment.objects.all()] def test_multiple_query_compilation(self): # Ticket #21643 queryset = Experiment.objects.filter(end__lt=F('start') + datetime.timedelta(hours=1)) q1 = str(queryset.query) q2 = str(queryset.query) self.assertEqual(q1, q2) def test_query_clone(self): # Ticket #21643 qs = Experiment.objects.filter(end__lt=F('start') + datetime.timedelta(hours=1)) qs2 = qs.all() list(qs) list(qs2) def test_delta_add(self): for i in range(len(self.deltas)): delta = self.deltas[i] Loading