class StatementLambdaElement(roles.AllowsLambdaRole, LambdaElement):
Known subclasses: sqlalchemy.sql.lambdas.LinkedLambdaElement
Represent a composable SQL statement as a _sql.LambdaElement
.
The _sql.StatementLambdaElement
is constructed using the
_sql.lambda_stmt
function:
from sqlalchemy import lambda_stmt stmt = lambda_stmt(lambda: select(table))
Once constructed, additional criteria can be built onto the statement by adding subsequent lambdas, which accept the existing statement object as a single parameter:
stmt += lambda s: s.where(table.c.col == parameter)
See Also
Method | add_criteria |
Add new criteria to this _sql.StatementLambdaElement . |
Method | spoil |
Return a new .StatementLambdaElement that will run all lambdas unconditionally each time. |
Method | __add__ |
Undocumented |
Method | _execute_on_connection |
Undocumented |
Property | _effective_plugin_target |
Undocumented |
Property | _execution_options |
Undocumented |
Property | _with_options |
Undocumented |
Inherited from AllowsLambdaRole
:
Class Variable | allows_lambda |
Undocumented |
Inherited from LambdaElement
:
Method | __getattr__ |
Undocumented |
Method | __init__ |
Undocumented |
Method | __repr__ |
Undocumented |
Method | _copy_internals |
Reassign internal elements to be clones of themselves. |
Method | _gen_cache_key |
return an optional cache key. |
Method | _invoke_user_fn |
Undocumented |
Method | _param_dict |
Undocumented |
Method | _retrieve_tracker_rec |
Undocumented |
Method | _setup_binds_for_tracked_expr |
Undocumented |
Class Variable | __visit_name__ |
Undocumented |
Class Variable | _is_lambda_element |
Undocumented |
Class Variable | _transforms |
Undocumented |
Class Variable | _traverse_internals |
Undocumented |
Class Variable | parent_lambda |
Undocumented |
Instance Variable | _rec |
Undocumented |
Instance Variable | _resolved_bindparams |
Undocumented |
Instance Variable | closure_cache_key |
Undocumented |
Instance Variable | fn |
Undocumented |
Instance Variable | opts |
Undocumented |
Instance Variable | role |
Undocumented |
Instance Variable | tracker_key |
Undocumented |
Property | _from_objects |
Undocumented |
Property | _is_sequence |
Undocumented |
Property | _resolved |
Undocumented |
Property | _select_iterable |
Undocumented |
Inherited from ClauseElement
(via LambdaElement
):
Method | compare |
Compare this _expression.ClauseElement to the given _expression.ClauseElement . |
Method | compile |
Compile this SQL expression. |
Method | params |
Return a copy with _expression.bindparam elements replaced. |
Method | self_group |
Apply a 'grouping' to this _expression.ClauseElement . |
Method | unique_params |
Return a copy with _expression.bindparam elements replaced. |
Method | __bool__ |
Undocumented |
Method | __getstate__ |
Undocumented |
Method | __invert__ |
Undocumented |
Method | __str__ |
Undocumented |
Method | _clone |
Create a shallow copy of this ClauseElement. |
Method | _cloned_set |
Return the set consisting all cloned ancestors of this ClauseElement. |
Method | _compile_w_cache |
Undocumented |
Method | _compiler |
Return a compiler appropriate for this ClauseElement, given a Dialect. |
Method | _negate |
Undocumented |
Method | _negate_in_binary |
a hook to allow the right side of a binary expression to respond to a negation of the binary expression. |
Method | _replace_params |
Undocumented |
Method | _set_propagate_attrs |
Undocumented |
Method | _ungroup |
Return this _expression.ClauseElement without any groupings. |
Method | _with_binary_element_type |
in the context of binary expression, convert the type of this object to the one given. |
Class Variable | _cache_key_traversal |
Undocumented |
Class Variable | _is_bind_parameter |
Undocumented |
Class Variable | _is_clause_list |
Undocumented |
Class Variable | _is_clone_of |
Undocumented |
Class Variable | _is_from_clause |
Undocumented |
Class Variable | _is_from_container |
Undocumented |
Class Variable | _is_immutable |
Undocumented |
Class Variable | _is_returns_rows |
Undocumented |
Class Variable | _is_select_container |
Undocumented |
Class Variable | _is_select_statement |
Undocumented |
Class Variable | _is_singleton_constant |
Undocumented |
Class Variable | _is_text_clause |
Undocumented |
Class Variable | _is_textual |
Undocumented |
Class Variable | _order_by_label_element |
Undocumented |
Class Variable | bind |
Undocumented |
Class Variable | description |
Undocumented |
Class Variable | is_clause_element |
Undocumented |
Class Variable | is_selectable |
Undocumented |
Class Variable | stringify_dialect |
Undocumented |
Class Variable | supports_execution |
Undocumented |
Instance Variable | _propagate_attrs |
like annotations, however these propagate outwards liberally as SQL constructs are built, and are set up at construction time. |
Property | _constructor |
return the 'constructor' for this ClauseElement. |
Property | entity_namespace |
Undocumented |
Inherited from SQLRole
(via LambdaElement
, ClauseElement
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from SupportsWrappingAnnotations
(via LambdaElement
, ClauseElement
):
Method | _annotate |
return a copy of this ClauseElement with annotations updated by the given dictionary. |
Method | _deannotate |
return a copy of this _expression.ClauseElement with annotations removed. |
Method | _with_annotations |
return a copy of this ClauseElement with annotations replaced by the given dictionary. |
Inherited from SupportsAnnotations
(via LambdaElement
, ClauseElement
, SupportsWrappingAnnotations
):
Property | _annotations_cache_key |
Undocumented |
Inherited from MemoizedHasCacheKey
(via LambdaElement
, ClauseElement
):
Method | _generate_cache_key |
return a cache key. |
Inherited from HasCacheKey
(via LambdaElement
, ClauseElement
, MemoizedHasCacheKey
):
Class Variable | inherit_cache |
Indicate if this .HasCacheKey instance should make use of the cache key generation scheme used by its immediate superclass. |
Class Method | _generate_cache_attrs |
generate cache key dispatcher for a new class. |
Class Method | _generate_cache_key_for_object |
Undocumented |
Class Variable | __slots__ |
Undocumented |
Class Variable | _hierarchy_supports_caching |
private attribute which may be set to False to prevent the inherit_cache warning from being emitted for a hierarchy of subclasses. |
Class Variable | _is_has_cache_key |
Undocumented |
Inherited from Traversible
(via LambdaElement
, ClauseElement
):
Method | get_children |
Return immediate child .visitors.Traversible elements of this .visitors.Traversible . |
Method | __class_getitem__ |
Undocumented |
Add new criteria to this _sql.StatementLambdaElement
.
E.g.:
>>> def my_stmt(parameter): ... stmt = lambda_stmt( ... lambda: select(table.c.x, table.c.y), ... ) ... stmt = stmt.add_criteria( ... lambda: table.c.x > parameter ... ) ... return stmt
The _sql.StatementLambdaElement.add_criteria
method is
equivalent to using the Python addition operator to add a new
lambda, except that additional arguments may be added including
track_closure_values and track_on:
>>> def my_stmt(self, foo): ... stmt = lambda_stmt( ... lambda: select(func.max(foo.x, foo.y)), ... track_closure_variables=False ... ) ... stmt = stmt.add_criteria( ... lambda: self.where_criteria, ... track_on=[self] ... ) ... return stmt
See _sql.lambda_stmt
for a description of the parameters
accepted.
.StatementLambdaElement
that will run
all lambdas unconditionally each time.