summaryrefslogtreecommitdiff
path: root/tests
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 09:46:30 +0100
commitfc15d11f2eb26fe3d5c946e69223880bfe53e92b (patch)
tree03fdf5684c941cb27f1b2cdc6348a399d747325c /tests
parent872dade29c8a4b9e82920a85c698fcef8ed332ee (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.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):