mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #30856 -- Combined fast-delete queries by model during cascade deletion.
Reduced the number of queries required when performing cascade deletion for a model referenced multiple time by another one by performing an union of reference lookups.
This commit is contained in:
committed by
Mariusz Felisiak
parent
44522d1036
commit
26c66f4519
@@ -582,3 +582,11 @@ class FastDeleteTests(TestCase):
|
||||
User.objects.filter(avatar__desc='missing').delete(),
|
||||
(0, {'delete.User': 0})
|
||||
)
|
||||
|
||||
def test_fast_delete_combined_relationships(self):
|
||||
# The cascading fast-delete of SecondReferrer should be combined
|
||||
# in a single DELETE WHERE referrer_id OR unique_field.
|
||||
origin = Origin.objects.create()
|
||||
referer = Referrer.objects.create(origin=origin, unique_field=42)
|
||||
with self.assertNumQueries(2):
|
||||
referer.delete()
|
||||
|
||||
Reference in New Issue
Block a user