diff options
| author | Matthew Schinckel <matt@schinckel.net> | 2017-02-25 21:11:56 +1030 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2017-03-01 07:56:37 -0500 |
| commit | f48bc7c3dbd204eefb3c19016b1e4906ac26bee3 (patch) | |
| tree | a2bd9e6a5829cdd515049d88430d8627c54c4c21 /tests | |
| parent | 9f21e35100b022b31fe723323db85c2cb28b16b8 (diff) | |
Fixed #27862 -- Fixed incorrectly quoted table aliases in Subquery SQL.
Add aliases from resolved querysets to the parent query's external
aliases to prevent those aliases from being quoted.
Thanks to Vasily Stepanov for the report and Tim Graham for the review.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/expressions/tests.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/tests/expressions/tests.py b/tests/expressions/tests.py index 38258e0dd0..5483a17fd1 100644 --- a/tests/expressions/tests.py +++ b/tests/expressions/tests.py @@ -516,6 +516,15 @@ class BasicExpressionsTests(TestCase): [{'salary': 10, 'total_employees': 2300}, {'salary': 20, 'total_employees': 35}], ) + def test_subquery_references_joined_table_twice(self): + inner = Company.objects.filter( + num_chairs__gte=OuterRef('ceo__salary'), + num_employees__gte=OuterRef('point_of_contact__salary'), + ) + # Another contrived example (there is no need to have a subquery here) + outer = Company.objects.filter(pk__in=Subquery(inner.values('pk'))) + self.assertFalse(outer.exists()) + class IterableLookupInnerExpressionsTests(TestCase): @classmethod |
