class documentation

class StatementLambdaElement(roles.AllowsLambdaRole, LambdaElement):

Known subclasses: sqlalchemy.sql.lambdas.LinkedLambdaElement

View In Hierarchy

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)
New in version 1.4.
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
def add_criteria(self, other, enable_tracking=True, track_on=None, track_closure_variables=True, track_bound_values=True):

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.

def spoil(self):
Return a new .StatementLambdaElement that will run all lambdas unconditionally each time.
def __add__(self, other):

Undocumented

def _execute_on_connection(self, connection, multiparams, params, execution_options):
@property
_effective_plugin_target =

Undocumented

@property
_execution_options =

Undocumented

@property
_with_options =

Undocumented