class documentation

Represent a composable SQL statement as a :class:`_sql.LambdaElement`. The :class:`_sql.StatementLambdaElement` is constructed using the :func:`_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) .. versionadded:: 1.4 .. seealso:: :ref:`engine_lambda_caching`

Method __add__ Undocumented
Method __init__ Undocumented
Method add_criteria Add new criteria to this :class:`_sql.StatementLambdaElement`.
Method spoil Return a new :class:`.StatementLambdaElement` that will run all lambdas unconditionally each time.
Property is_delete Undocumented
Property is_dml Undocumented
Property is_insert Undocumented
Property is_select Undocumented
Property is_text Undocumented
Property is_update Undocumented
Method _execute_on_connection Undocumented
Property _all_selected_columns Undocumented
Property _effective_plugin_target Undocumented
Property _execution_options Undocumented
Property _proxied Undocumented
Property _with_options Undocumented

Inherited from AllowsLambdaRole:

Class Variable __slots__ Undocumented
Class Variable allows_lambda Undocumented

Inherited from LambdaElement (via AllowsLambdaRole):

Method __getattr__ Undocumented
Method __repr__ Undocumented
Class Variable __visit_name__ Undocumented
Class Variable parent_lambda Undocumented
Instance Variable closure_cache_key Undocumented
Instance Variable fn Undocumented
Instance Variable opts Undocumented
Instance Variable role Undocumented
Instance Variable tracker_key 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 _is_lambda_element Undocumented
Class Variable _transforms Undocumented
Class Variable _traverse_internals Undocumented
Instance Variable _rec Undocumented
Instance Variable _resolved_bindparams Undocumented
Property _from_objects Undocumented
Property _is_sequence Undocumented
Property _resolved Undocumented
Property _select_iterable Undocumented

Inherited from ClauseElement (via AllowsLambdaRole, LambdaElement):

Method __bool__ Undocumented
Method __getstate__ Undocumented
Method __invert__ Undocumented
Method compare Compare this :class:`_expression.ClauseElement` to the given :class:`_expression.ClauseElement`.
Method get_children Return immediate child :class:`.visitors.HasTraverseInternals` elements of this :class:`.visitors.HasTraverseInternals`.
Method params Return a copy with :func:`_expression.bindparam` elements replaced.
Method self_group Apply a 'grouping' to this :class:`_expression.ClauseElement`.
Method unique_params Return a copy with :func:`_expression.bindparam` elements replaced.
Class Variable is_clause_element Undocumented
Class Variable is_selectable Undocumented
Class Variable negation_clause Undocumented
Property description Undocumented
Property entity_namespace 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 _execute_on_scalar an additional hook for subclasses to provide a different implementation for connection.scalar() vs. connection.execute().
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 :class:`_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 _gen_static_annotations_cache_key Undocumented
Class Variable _is_bind_parameter Undocumented
Class Variable _is_clause_list Undocumented
Class Variable _is_clone_of Undocumented
Class Variable _is_column_element Undocumented
Class Variable _is_from_clause Undocumented
Class Variable _is_from_container Undocumented
Class Variable _is_immutable Undocumented
Class Variable _is_keyed_column_element Undocumented
Class Variable _is_returns_rows Undocumented
Class Variable _is_select_base Undocumented
Class Variable _is_select_container Undocumented
Class Variable _is_select_statement Undocumented
Class Variable _is_singleton_constant Undocumented
Class Variable _is_star Undocumented
Class Variable _is_table Undocumented
Class Variable _is_text_clause Undocumented
Class Variable _is_textual 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 _order_by_label_element Undocumented

Inherited from SupportsWrappingAnnotations (via AllowsLambdaRole, LambdaElement, ClauseElement):

Method _annotate return a copy of this ClauseElement with annotations updated by the given dictionary.
Method _deannotate return a copy of this :class:`_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 AllowsLambdaRole, LambdaElement, ClauseElement, SupportsWrappingAnnotations):

Class Variable proxy_set Undocumented
Method _gen_annotations_cache_key Undocumented
Property _annotations_cache_key Undocumented

Inherited from MemoizedHasCacheKey (via AllowsLambdaRole, LambdaElement, ClauseElement, SupportsWrappingAnnotations, SupportsAnnotations):

Method _generate_cache_key return a cache key.

Inherited from HasCacheKey (via AllowsLambdaRole, LambdaElement, ClauseElement, SupportsWrappingAnnotations, SupportsAnnotations, MemoizedHasCacheKey):

Class Variable inherit_cache Indicate if this :class:`.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 _generated_cache_key_traversal 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 CompilerElement (via AllowsLambdaRole, LambdaElement, ClauseElement, SupportsWrappingAnnotations, SupportsAnnotations, MemoizedHasCacheKey, HasCacheKey, HasCopyInternals, ExternallyTraversible, HasTraverseInternals):

Method __str__ Undocumented
Method compile Compile this SQL expression.
Class Variable stringify_dialect Undocumented
Class Variable supports_execution Undocumented
Method _compiler Return a compiler appropriate for this ClauseElement, given a Dialect.

Inherited from Visitable (via AllowsLambdaRole, LambdaElement, ClauseElement, SupportsWrappingAnnotations, SupportsAnnotations, MemoizedHasCacheKey, HasCacheKey, HasCopyInternals, ExternallyTraversible, HasTraverseInternals, CompilerElement):

Method __class_getitem__ Undocumented
Method __init_subclass__ Undocumented
Class Method _generate_compiler_dispatch Undocumented
Method _compiler_dispatch Undocumented
Class Variable _original_compiler_dispatch Undocumented

Inherited from Executable (via AllowsLambdaRole, LambdaElement, ClauseElement, SupportsWrappingAnnotations, SupportsAnnotations, MemoizedHasCacheKey, HasCacheKey, HasCopyInternals, ExternallyTraversible, HasTraverseInternals, CompilerElement, Visitable):

Method execution_options Set non-SQL options for the statement which take effect during execution.
Method get_execution_options Get the non-SQL options which will take effect during execution.
Method options Apply options to this statement.
Method _add_context_option Add a context option to this statement.
Method _set_compile_options Assign the compile options to a new value.
Method _update_compile_options update the _compile_options with new keys.
Class Variable _executable_traverse_internals Undocumented
Class Variable _is_default_generator Undocumented
Class Variable _with_context_options Undocumented
Instance Variable _compile_options Undocumented

Inherited from StatementRole (via AllowsLambdaRole, LambdaElement, ClauseElement, SupportsWrappingAnnotations, SupportsAnnotations, MemoizedHasCacheKey, HasCacheKey, HasCopyInternals, ExternallyTraversible, HasTraverseInternals, CompilerElement, Visitable, Executable):

Class Variable _role_name Undocumented

Inherited from SQLRole (via AllowsLambdaRole, LambdaElement, ClauseElement, SupportsWrappingAnnotations, SupportsAnnotations, MemoizedHasCacheKey, HasCacheKey, HasCopyInternals, ExternallyTraversible, HasTraverseInternals, CompilerElement, Visitable, Executable, StatementRole):

Class Variable uses_inspection Undocumented

Undocumented

def add_criteria(self, other: _StmtLambdaElementType[Any], enable_tracking: bool = True, track_on: Optional[Any] = None, track_closure_variables: bool = True, track_bound_values: bool = True) -> StatementLambdaElement: (source)

Add new criteria to this :class:`_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 :meth:`_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 :func:`_sql.lambda_stmt` for a description of the parameters accepted.

Return a new :class:`.StatementLambdaElement` that will run all lambdas unconditionally each time.

def _execute_on_connection(self, connection, distilled_params, execution_options): (source)

Undocumented