mirror of
https://github.com/django/django.git
synced 2025-08-04 10:59:45 +00:00
Fixed #24020 -- Refactored SQL compiler to use expressions
Refactored compiler SELECT, GROUP BY and ORDER BY generation. While there, also refactored select_related() implementation (get_cached_row() and get_klass_info() are now gone!). Made get_db_converters() method work on expressions instead of internal_type. This allows the backend converters to target specific expressions if need be. Added query.context, this can be used to set per-query state. Also changed the signature of database converters. They now accept context as an argument.
This commit is contained in:
parent
b8abfe141b
commit
0c7633178f
41 changed files with 970 additions and 1416 deletions
|
@ -3563,8 +3563,10 @@ class Ticket20955Tests(TestCase):
|
|||
# version's queries.
|
||||
task_get.creator.staffuser.staff
|
||||
task_get.owner.staffuser.staff
|
||||
task_select_related = Task.objects.select_related(
|
||||
'creator__staffuser__staff', 'owner__staffuser__staff').get(pk=task.pk)
|
||||
qs = Task.objects.select_related(
|
||||
'creator__staffuser__staff', 'owner__staffuser__staff')
|
||||
self.assertEqual(str(qs.query).count(' JOIN '), 6)
|
||||
task_select_related = qs.get(pk=task.pk)
|
||||
with self.assertNumQueries(0):
|
||||
self.assertEqual(task_select_related.creator.staffuser.staff,
|
||||
task_get.creator.staffuser.staff)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue