mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	[4.0.x] Fixed #33159 -- Reverted "Fixed #32970 -- Changed WhereNode.clone() to create a shallow copy of children."
This reverts commite441847eca. A shallow copy is not enough because querysets can be reused and evaluated in nested nodes, which shouldn't mutate JOIN aliases. Thanks Michal Čihař for the report. Backport of903aaa35e5from main
This commit is contained in:
		| @@ -1663,6 +1663,12 @@ class Queries5Tests(TestCase): | ||||
|             'bar %s' | ||||
|         ) | ||||
|  | ||||
|     def test_queryset_reuse(self): | ||||
|         # Using querysets doesn't mutate aliases. | ||||
|         authors = Author.objects.filter(Q(name='a1') | Q(name='nonexistent')) | ||||
|         self.assertEqual(Ranking.objects.filter(author__in=authors).get(), self.rank3) | ||||
|         self.assertEqual(authors.count(), 1) | ||||
|  | ||||
|  | ||||
| class SelectRelatedTests(TestCase): | ||||
|     def test_tickets_3045_3288(self): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user