class documentation

class WindowFrame(Expression):

Known subclasses: django.db.models.expressions.RowRange, django.db.models.expressions.ValueRange

View In Hierarchy

Model the frame clause in window expressions. There are two types of frame clauses which are subclasses, however, all processing and validation (by no means intended to be complete) is done here. Thus, providing an end for a frame is optional (the default is UNBOUNDED FOLLOWING, which is the last row in the frame).
Method __init__ Undocumented
Method __repr__ Undocumented
Method __str__ Undocumented
Method as​_sql Responsible for returning a (sql, [params]) tuple to be included in the current query.
Method get​_group​_by​_cols Undocumented
Method get​_source​_expressions Undocumented
Method set​_source​_expressions Undocumented
Method window​_frame​_start​_end Undocumented
Class Variable template Undocumented
Instance Variable end Undocumented
Instance Variable start Undocumented

Inherited from Expression:

Method __eq__ Undocumented
Method __hash__ Undocumented
Property identity Undocumented

Inherited from BaseExpression (via Expression):

Static Method ​_convert​_value​_noop Undocumented
Method __getstate__ Undocumented
Method ​_parse​_expressions Undocumented
Method ​_resolve​_output​_field Attempt to infer the output type of the expression. If the output fields of all source fields match then, simply infer the same type here. This isn't always correct, but it makes sense most of the time.
Method asc Undocumented
Method copy Undocumented
Method desc Undocumented
Method flatten Recursively yield this expression and all subexpressions, in depth-first order.
Method get​_db​_converters Undocumented
Method get​_lookup Undocumented
Method get​_source​_fields Return the underlying field types used by this aggregate.
Method get​_transform Undocumented
Method relabeled​_clone Undocumented
Method resolve​_expression Provide the chance to do any preprocessing or validation before being added to the query.
Method reverse​_ordering Undocumented
Method select​_format Custom format for select clauses. For example, EXISTS expressions need to be wrapped in CASE WHEN on Oracle.
Class Variable ​_output​_field​_resolved​_to​_none Undocumented
Class Variable filterable Undocumented
Class Variable is​_summary Undocumented
Class Variable window​_compatible Undocumented
Property ​_output​_field​_or​_none Return the output field of this expression, or None if _resolve_output_field() didn't return an output type.
Property conditional Undocumented
Property contains​_aggregate Undocumented
Property contains​_column​_references Undocumented
Property contains​_over​_clause Undocumented
Property convert​_value Expressions provide their own converters because users have the option of manually specifying the output_field which may be a different type from the one the database returns.
Property field Undocumented
Property output​_field Return the output type of this expressions.

Inherited from Combinable (via Expression):

Constant ADD Undocumented
Constant BITAND Undocumented
Constant BITLEFTSHIFT Undocumented
Constant BITOR Undocumented
Constant BITRIGHTSHIFT Undocumented
Constant BITXOR Undocumented
Constant DIV Undocumented
Constant MOD Undocumented
Constant MUL Undocumented
Constant POW Undocumented
Constant SUB Undocumented
Method __add__ Undocumented
Method __and__ Undocumented
Method __mod__ Undocumented
Method __mul__ Undocumented
Method __neg__ Undocumented
Method __or__ Undocumented
Method __pow__ Undocumented
Method __radd__ Undocumented
Method __rand__ Undocumented
Method __rmod__ Undocumented
Method __rmul__ Undocumented
Method __ror__ Undocumented
Method __rpow__ Undocumented
Method __rsub__ Undocumented
Method __rtruediv__ Undocumented
Method __sub__ Undocumented
Method __truediv__ Undocumented
Method ​_combine Undocumented
Method bitand Undocumented
Method bitleftshift Undocumented
Method bitor Undocumented
Method bitrightshift Undocumented
Method bitxor Undocumented
def __init__(self, start=None, end=None):
def __repr__(self):

Undocumented

def __str__(self):

Undocumented

def as_sql(self, compiler, connection):

Responsible for returning a (sql, [params]) tuple to be included in the current query.

Different backends can provide their own implementation, by providing an as_{vendor} method and patching the Expression:

``` def override_as_sql(self, compiler, connection):

# custom logic return super().as_sql(compiler, connection)

setattr(Expression, 'as_' + connection.vendor, override_as_sql) ```

Arguments:
  • compiler: the query compiler responsible for generating the query. Must have a compile method, returning a (sql, [params]) tuple. Calling compiler(value) will return a quoted value.
  • connection: the database connection used for the current query.
Return: (sql, params)
Where sql is a string containing ordered sql parameters to be replaced with the elements of the list params.
def get_group_by_cols(self, alias=None):
def get_source_expressions(self):
def set_source_expressions(self, exprs):
def window_frame_start_end(self, connection, start, end):
template: str =

Undocumented

end =

Undocumented

start =

Undocumented