11import collections
22from collections import namedtuple
3- from collections .abc import Callable , Iterable , Iterator , Sequence
3+ from collections .abc import Iterable , Iterator , Sequence
44from typing import Any , Literal
55
6- from django .db .backends .base .base import BaseDatabaseWrapper
76from django .db .backends .utils import CursorWrapper
87from django .db .models import Field , FilteredRelation , Model , Q
98from django .db .models .expressions import BaseExpression , Combinable , Expression , OrderBy
109from django .db .models .lookups import Lookup , Transform
1110from django .db .models .options import Options
1211from django .db .models .query_utils import PathInfo
13- from django .db .models .sql .compiler import SQLCompiler
1412from django .db .models .sql .datastructures import BaseTable , Join
1513from django .db .models .sql .where import WhereNode
1614from django .utils .functional import cached_property
@@ -41,6 +39,7 @@ class Query(BaseExpression):
4139 alias_prefix : str
4240 subq_aliases : frozenset [Any ]
4341 compiler : str
42+ base_table_class : type [BaseTable ]
4443 model : type [Model ] | None
4544 alias_refcount : dict [str , int ]
4645 alias_map : dict [str , BaseTable | Join ]
@@ -65,6 +64,7 @@ class Query(BaseExpression):
6564 select_for_no_key_update : bool
6665 select_related : dict [str , Any ] | bool
6766 max_depth : int
67+ join_class : type [Join ]
6868 values_select : tuple
6969 annotation_select_mask : list [str ] | None
7070 combinator : str | None
@@ -81,51 +81,73 @@ class Query(BaseExpression):
8181 low_mark : int
8282 extra : dict [str , Any ]
8383 annotations : dict [str , Expression ]
84- def __init__ (self , model : type [Model ] | None , where : type [WhereNode ] = ..., alias_cols : bool = ...) -> None : ...
84+ empty_result_set_value : Any | None
85+ explain_info : Any | None
86+ def __init__ (self , model : type [Model ] | None , alias_cols : bool = True ) -> None : ...
8587 @property
8688 def output_field (self ) -> Field : ...
8789 @property
8890 def has_select_fields (self ) -> bool : ...
8991 @cached_property
9092 def base_table (self ) -> str : ...
93+ def add_annotation (self , annotation : Any , alias : str , select : bool = True ) -> None : ...
9194 def sql_with_params (self ) -> tuple [str , tuple ]: ...
9295 def __deepcopy__ (self , memo : dict [int , Any ]) -> Query : ...
93- def get_compiler (self , using : str | None = ..., connection : BaseDatabaseWrapper | None = ...) -> SQLCompiler : ...
96+ def get_compiler (
97+ self , using : str | None = None , connection : Any | None = None , elide_empty : bool = True
98+ ) -> Any : ...
99+ def join_parent_model (self , opts : Any , model : Any | None , alias : str , seen : dict [Any , str ]) -> str : ...
100+ def names_to_path (
101+ self , names : list [str ], opts : Any , allow_many : bool = True , fail_on_missing : bool = False
102+ ) -> tuple [list [Any ], Any , tuple [Any , ...], list [str ]]: ...
94103 def get_meta (self ) -> Options : ...
95104 def clone (self ) -> Query : ...
96105 def chain (self , klass : type [Query ] | None = ...) -> Query : ...
97106 def get_count (self , using : str ) -> int : ...
107+ def get_group_by_cols (self , wrapper : Any | None = None ) -> list [Any ]: ...
98108 def has_filters (self ) -> WhereNode : ...
109+ def get_external_cols (self ) -> list [Any ]: ...
110+ def exists (self , limit : bool = True ) -> Any : ...
99111 def has_results (self , using : str ) -> bool : ...
100112 def explain (self , using : str , format : str | None = ..., ** options : Any ) -> str : ...
101113 def combine (self , rhs : Query , connector : str ) -> None : ...
102- def deferred_to_data (self , target : dict [Any , Any ], callback : Callable ) -> None : ...
103114 def ref_alias (self , alias : str ) -> None : ...
104115 def unref_alias (self , alias : str , amount : int = ...) -> None : ...
105116 def promote_joins (self , aliases : Iterable [str ]) -> None : ...
106117 def demote_joins (self , aliases : Iterable [str ]) -> None : ...
107118 def reset_refcounts (self , to_counts : dict [str , int ]) -> None : ...
119+ def check_alias (self , alias : str ) -> None : ...
120+ def check_related_objects (self , field : Any , value : Any , opts : Any ) -> None : ...
121+ def check_query_object_type (self , value : Any , opts : Any , field : Any ) -> None : ...
108122 def change_aliases (self , change_map : dict [str | None , str ]) -> None : ...
109- def bump_prefix (self , outer_query : Query ) -> None : ...
123+ def bump_prefix (self , other_query : Query , exclude : Any | None = None ) -> None : ...
110124 def get_initial_alias (self ) -> str : ...
111125 def count_active_tables (self ) -> int : ...
112126 def resolve_expression (self , query : Query , * args : Any , ** kwargs : Any ) -> Query : ... # type: ignore[override]
113127 def resolve_lookup_value (
114128 self , value : Any , can_reuse : set [str ] | None , allow_joins : bool , summarize : bool = False
115129 ) -> Any : ...
116- def solve_lookup_type (self , lookup : str ) -> tuple [Sequence [str ], Sequence [str ], Expression | Literal [False ]]: ...
130+ def solve_lookup_type (
131+ self , lookup : str , summarize : bool = False
132+ ) -> tuple [Sequence [str ], Sequence [str ], Expression | Literal [False ]]: ...
133+ def table_alias (
134+ self , table_name : str , create : bool = False , filtered_relation : Any | None = None
135+ ) -> tuple [str , bool ]: ...
136+ def get_aggregation (self , using : Any , aggregate_exprs : dict [str , Any ]) -> dict [str , Any ]: ...
117137 def build_filter (
118138 self ,
119139 filter_expr : Q | Expression | dict [str , str ] | tuple [str , Any ],
120- branch_negated : bool = ...,
121- current_negated : bool = ...,
122- can_reuse : set [str ] | None = ...,
123- allow_joins : bool = ...,
124- split_subq : bool = ...,
125- check_filterable : bool = ...,
126- update_join_types : bool = ...,
140+ branch_negated : bool = False ,
141+ current_negated : bool = False ,
142+ can_reuse : set [str ] | None = None ,
143+ allow_joins : bool = True ,
144+ split_subq : bool = True ,
145+ check_filterable : bool = True ,
146+ summarize : bool = False ,
147+ update_join_types : bool = True ,
127148 ) -> tuple [WhereNode , Iterable [str ]]: ...
128- def add_filter (self , filter_clause : tuple [str , Any ]) -> None : ...
149+ def add_select_col (self , col : Any , name : str ) -> None : ...
150+ def add_filter (self , filter_lhs : tuple [str , Any ], filter_rhs : tuple [str , Any ]) -> None : ...
129151 def add_q (self , q_object : Q ) -> None : ...
130152 def build_where (self , filter_expr : Q | Expression | dict [str , str ] | tuple [str , Any ]) -> WhereNode : ...
131153 def add_filtered_relation (self , filtered_relation : FilteredRelation , alias : str ) -> None : ...
@@ -163,7 +185,8 @@ class Query(BaseExpression):
163185 def add_distinct_fields (self , * field_names : Any ) -> None : ...
164186 def add_fields (self , field_names : Iterable [str ], allow_m2m : bool = ...) -> None : ...
165187 def add_ordering (self , * ordering : str | OrderBy ) -> None : ...
166- def clear_ordering (self , force_empty : bool ) -> None : ...
188+ def clear_where (self ) -> None : ...
189+ def clear_ordering (self , force : bool = False , clear_default : bool = True ) -> None : ...
167190 def set_group_by (self , allow_aliases : bool = ...) -> None : ...
168191 def add_select_related (self , fields : Iterable [str ]) -> None : ...
169192 def add_extra (
@@ -178,10 +201,7 @@ class Query(BaseExpression):
178201 def clear_deferred_loading (self ) -> None : ...
179202 def add_deferred_loading (self , field_names : Iterable [str ]) -> None : ...
180203 def add_immediate_loading (self , field_names : Iterable [str ]) -> None : ...
181- def get_loaded_field_names (self ) -> dict [type [Model ], set [str ]]: ...
182- def get_loaded_field_names_cb (
183- self , target : dict [type [Model ], set [str ]], model : type [Model ], fields : set [Field ]
184- ) -> None : ...
204+ def get_select_mask (self ) -> dict [str , Any ]: ...
185205 def set_annotation_mask (self , names : Iterable [str ] | None ) -> None : ...
186206 def append_annotation_mask (self , names : Iterable [str ]) -> None : ...
187207 def set_extra_mask (self , names : Iterable [str ] | None ) -> None : ...
0 commit comments