summaryrefslogtreecommitdiff
path: root/tests/expressions_window
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2023-02-26 13:43:00 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-02-27 07:18:58 +0100
commitc67ea79aa981ae82595d89f8018a41fcd842e7c9 (patch)
tree40c222b0e86796b2614e55e96a8898ca95500422 /tests/expressions_window
parentb15f162f252610e3b510ade465549769ab4356cf (diff)
Fixed #34368 -- Made subquery raise NotSupportedError when referencing outer window expression.
Regression in f387d024fc75569d2a4a338bfda76cc2f328f627. Co-authored-by: Jannis Vajen <jvajen@gmail.com>
Diffstat (limited to 'tests/expressions_window')
-rw-r--r--tests/expressions_window/tests.py19
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):