diff options
| author | Simon Charette <charette.s@gmail.com> | 2023-02-26 13:43:00 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-02-27 09:46:30 +0100 |
| commit | fc15d11f2eb26fe3d5c946e69223880bfe53e92b (patch) | |
| tree | 03fdf5684c941cb27f1b2cdc6348a399d747325c /tests | |
| parent | 872dade29c8a4b9e82920a85c698fcef8ed332ee (diff) | |
[4.2.x] Fixed #34368 -- Made subquery raise NotSupportedError when referencing outer window expression.
Regression in f387d024fc75569d2a4a338bfda76cc2f328f627.
Co-authored-by: Jannis Vajen <jvajen@gmail.com>
Backport of c67ea79aa981ae82595d89f8018a41fcd842e7c9 from main
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/expressions_window/tests.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/expressions_window/tests.py b/tests/expressions_window/tests.py index 027fc9c25c..3a02a36707 100644 --- a/tests/expressions_window/tests.py +++ b/tests/expressions_window/tests.py @@ -1587,6 +1587,25 @@ class WindowUnsupportedTests(TestCase): dense_rank=Window(expression=DenseRank()) ).get() + def test_filter_subquery(self): + qs = Employee.objects.annotate( + department_salary_rank=Window( + Rank(), partition_by="department", order_by="-salary" + ) + ) + msg = ( + "Referencing outer query window expression is not supported: " + "department_salary_rank." + ) + with self.assertRaisesMessage(NotSupportedError, msg): + qs.annotate( + employee_name=Subquery( + Employee.objects.filter( + age=OuterRef("department_salary_rank") + ).values("name")[:1] + ) + ) + class NonQueryWindowTests(SimpleTestCase): def test_window_repr(self): |
