﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
34368	Subquery referencing WINDOW expression breaks query compilation	Jannis Vajen	nobody	"#28333 introduced the ability to filter on WINDOW expressions but when a WINDOW expression is referred to in a subquery, the query compiler fails: `ValueError: Need either using or connection`

I assume it has to do with `self.connection` not being passed on to `inner_query.get_compiler` in `get_qualify_sql` introduced here: https://github.com/django/django/commit/f387d024fc75569d2a4a338bfda76cc2f328f627#diff-f58de2deaccecd2d53199c5ca29e3e1050ec2adb80fb057cdfc0b4e6accdf14fR624

Below is the full traceback. A dummy test is available here: https://github.com/jnns/django/commit/04d59e27503fb376d60314806876ecbae89d9b62

{{{#!python
Traceback (most recent call last):
  File ""/usr/lib64/python3.11/unittest/case.py"", line 57, in testPartExecutor
    yield
  File ""/usr/lib64/python3.11/unittest/case.py"", line 623, in run
    self._callTestMethod(testMethod)
  File ""/usr/lib64/python3.11/unittest/case.py"", line 579, in _callTestMethod
    if method() is not None:
  File ""tests/expressions_window/tests.py"", line 1025, in test_filter_subquery
    list(
  File ""django/db/models/query.py"", line 398, in __iter__
    self._fetch_all()
  File ""django/db/models/query.py"", line 1881, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File ""django/db/models/query.py"", line 91, in __iter__
    results = compiler.execute_sql(
  File ""django/db/models/sql/compiler.py"", line 1545, in execute_sql
    sql, params = self.as_sql()
  File ""django/db/models/sql/compiler.py"", line 732, in as_sql
    extra_select, order_by, group_by = self.pre_sql_setup(
  File ""django/db/models/sql/compiler.py"", line 84, in pre_sql_setup
    self.setup_query(with_col_aliases=with_col_aliases)
  File ""django/db/models/sql/compiler.py"", line 73, in setup_query
    self.select, self.klass_info, self.annotation_col_map = self.get_select(
  File ""django/db/models/sql/compiler.py"", line 296, in get_select
    sql, params = self.compile(col)
  File ""django/db/models/sql/compiler.py"", line 542, in compile
    sql, params = node.as_sql(self, self.connection)
  File ""django/db/models/expressions.py"", line 1536, in as_sql
    subquery_sql, sql_params = self.query.as_sql(compiler, connection)
  File ""django/db/models/sql/query.py"", line 1150, in as_sql
    sql, params = self.get_compiler(connection=connection).as_sql()
  File ""django/db/models/sql/compiler.py"", line 751, in as_sql
    result, params = self.get_qualify_sql()
  File ""django/db/models/sql/compiler.py"", line 676, in get_qualify_sql
    inner_query_compiler = inner_query.get_compiler(
  File ""django/db/models/sql/query.py"", line 298, in get_compiler
    raise ValueError(""Need either using or connection"")
ValueError: Need either using or connection
}}}"	Bug	closed	Database layer (models, ORM)	4.2	Release blocker	fixed	window orm filter subquery	Simon Charette	Ready for checkin	0	0	0	0	0	0
