diff options
author | Simon Charette <simon.charette@zapier.com> | 2019-10-07 16:03:50 +0200 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2019-10-09 09:49:53 +0200 |
commit | 26c66f45193fa65125ca06328817927d6bbc2b22 (patch) | |
tree | 0156823fb42a5a9400842c20f8f915ddd0a26ea4 /tests/delete | |
parent | 44522d1036604e13a5adf4e084e1c8f7b56c82c0 (diff) | |
download | django-26c66f45193fa65125ca06328817927d6bbc2b22.tar.gz |
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.
Diffstat (limited to 'tests/delete')
-rw-r--r-- | tests/delete/tests.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/delete/tests.py b/tests/delete/tests.py index 505fd843d7..8cb028344b 100644 --- a/tests/delete/tests.py +++ b/tests/delete/tests.py @@ -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() |