class ColumnElement(roles.ColumnArgumentOrKeyRole, roles.StatementOptionRole, roles.WhereHavingRole, roles.BinaryElementRole, roles.OrderByRole, roles.ColumnsClauseRole, roles.LimitOffsetRole, roles.DMLColumnRole, roles.DDLConstraintColumnRole, roles.DDLExpressionRole, operators.ColumnOperators, ClauseElement):
Known subclasses: sqlalchemy.dialects.postgresql.aggregate_order_by
, sqlalchemy.dialects.postgresql.array
, sqlalchemy.sql.elements.BinaryExpression
, sqlalchemy.sql.elements.BindParameter
, sqlalchemy.sql.elements.Case
, sqlalchemy.sql.elements.Cast
, sqlalchemy.sql.elements.Extract
, sqlalchemy.sql.elements.False_
, sqlalchemy.sql.elements.FunctionFilter
, sqlalchemy.sql.elements.Label
, sqlalchemy.sql.elements.Null
, sqlalchemy.sql.elements.Over
, sqlalchemy.sql.elements.True_
, sqlalchemy.sql.elements.Tuple
, sqlalchemy.sql.elements.TypeCoerce
, sqlalchemy.sql.elements.UnaryExpression
, sqlalchemy.sql.elements.WithinGroup
, sqlalchemy.dialects.mssql.information_schema._cast_on_2005
, sqlalchemy.sql.compiler._CompileLabel
, sqlalchemy.sql.crud._multiparam_column
, sqlalchemy.sql.elements._label_reference
, sqlalchemy.sql.elements._textual_label_reference
, sqlalchemy.sql.elements.BooleanClauseList
, sqlalchemy.sql.elements.CollationClause
, sqlalchemy.sql.elements.Grouping
, sqlalchemy.sql.elements.NamedColumn
, sqlalchemy.sql.elements.Slice
Represent a column-oriented SQL expression suitable for usage in the "columns" clause, WHERE clause etc. of a statement.
While the most familiar kind of _expression.ColumnElement
is the
_schema.Column
object, _expression.ColumnElement
serves as the basis
for any unit that may be present in a SQL expression, including
the expressions themselves, SQL functions, bound parameters,
literal expressions, keywords such as NULL, etc.
_expression.ColumnElement
is the ultimate base class for all such elements.
A wide variety of SQLAlchemy Core functions work at the SQL expression
level, and are intended to accept instances of
_expression.ColumnElement
as
arguments. These functions will typically document that they accept a
"SQL expression" as an argument. What this means in terms of SQLAlchemy
usually refers to an input which is either already in the form of a
_expression.ColumnElement
object,
or a value which can be coerced into
one. The coercion rules followed by most, but not all, SQLAlchemy Core
functions with regards to SQL expressions are as follows:
- a literal Python value, such as a string, integer or floating point value, boolean, datetime, Decimal object, or virtually any other Python object, will be coerced into a "literal bound value". This generally means that a
.bindparam
will be produced featuring the given value embedded into the construct; the resulting.BindParameter
object is an instance of_expression.ColumnElement
. The Python value will ultimately be sent to the DBAPI at execution time as a parameterized argument to the execute() or executemany() methods, after SQLAlchemy type-specific converters (e.g. those provided by any associated.TypeEngine
objects) are applied to the value.- any special object value, typically ORM-level constructs, which feature an accessor called __clause_element__(). The Core expression system looks for this method when an object of otherwise unknown type is passed to a function that is looking to coerce the argument into a
_expression.ColumnElement
and sometimes a_expression.SelectBase
expression. It is used within the ORM to convert from ORM-specific objects like mapped classes and mapped attributes into Core expression objects.- The Python None value is typically interpreted as NULL, which in SQLAlchemy Core produces an instance of
.null
.
A _expression.ColumnElement
provides the ability to generate new
_expression.ColumnElement
objects using Python expressions. This means that Python operators
such as ==, != and < are overloaded to mimic SQL operations,
and allow the instantiation of further _expression.ColumnElement
instances
which are composed from other, more fundamental
_expression.ColumnElement
objects. For example, two .ColumnClause
objects can be added
together with the addition operator + to produce
a .BinaryExpression
.
Both .ColumnClause
and .BinaryExpression
are subclasses
of _expression.ColumnElement
:
>>> from sqlalchemy.sql import column >>> column('a') + column('b') <sqlalchemy.sql.expression.BinaryExpression object at 0x101029dd0> >>> print(column('a') + column('b')) a + b
See Also
_schema.Column
_expression.column
Method | cast |
Produce a type cast, i.e. CAST(<expression> AS <type>). |
Method | label |
Produce a column label, i.e. <columnname> AS <name>. |
Method | operate |
Operate on an argument. |
Method | reverse_operate |
Reverse operate on an argument. |
Method | self_group |
Apply a 'grouping' to this _expression.ClauseElement . |
Method | shares_lineage |
Return True if the given _expression.ColumnElement has a common ancestor to this _expression.ColumnElement . |
Class Variable | foreign_keys |
Undocumented |
Class Variable | key |
The 'key' that in some circumstances refers to this object in a Python namespace. |
Class Variable | primary_key |
Undocumented |
Method | __getattr__ |
Undocumented |
Method | _anon_label |
Undocumented |
Method | _bind_param |
Undocumented |
Method | _compare_name_for_result |
Return True if the given column element compares to this one when targeting within a result row. |
Method | _dedupe_anon_label_idx |
label to apply to a column that is anon labeled, but repeated in the SELECT, so that we have to make an "extra anon" label that disambiguates it from the previous appearance. |
Method | _dedupe_anon_tq_label_idx |
Undocumented |
Method | _expression_label |
a suggested label to use in the case that the column has no name, which should be used if possible as the explicit 'AS <label>' where this expression would normally have an anon label. |
Method | _make_proxy |
Create a new _expression.ColumnElement representing this _expression.ColumnElement as it appears in the select list of a descending selectable. |
Method | _negate |
Undocumented |
Method | _proxy_key |
Undocumented |
Method | _tq_key_label |
A label-based version of 'key' that in some circumstances refers to this object in a Python namespace. |
Method | _uncached_proxy_set |
An 'uncached' version of proxy set. |
Method | comparator |
Undocumented |
Class Variable | __visit_name__ |
Undocumented |
Class Variable | _allow_label_resolve |
A flag that can be flipped to prevent a column from being resolvable by string label name. |
Class Variable | _alt_names |
Undocumented |
Class Variable | _is_implicitly_boolean |
Undocumented |
Class Variable | _proxies |
Undocumented |
Class Variable | _render_label_in_columns_clause |
No summary |
Class Variable | _tq_label |
The named label that can be used to target this column in a result set in a "table qualified" context. |
Property | _anon_key_label |
Provides a constant 'anonymous key label' for this ColumnElement. |
Property | _anon_name_label |
Provides a constant 'anonymous label' for this ColumnElement. |
Property | _anon_tq_key_label |
Undocumented |
Property | _anon_tq_label |
Undocumented |
Property | _key_label |
legacy; renamed to _tq_key_label |
Property | _label |
legacy; renamed to _tq_label |
Property | _non_anon_label |
the 'name' that naturally applies this element when rendered in SQL. |
Property | _select_iterable |
Undocumented |
Property | anon_key_label |
Undocumented |
Property | anon_label |
Undocumented |
Property | base_columns |
Undocumented |
Property | expression |
Return a column expression. |
Property | proxy_set |
Undocumented |
Property | type |
Undocumented |
Inherited from ColumnArgumentOrKeyRole
:
Class Variable | _role_name |
Undocumented |
Inherited from SQLRole
(via ColumnArgumentOrKeyRole
, ColumnArgumentRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from StatementOptionRole
:
Class Variable | _role_name |
Undocumented |
Inherited from SQLRole
(via StatementOptionRole
, StructuralRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from WhereHavingRole
:
Class Variable | _role_name |
Undocumented |
Inherited from AllowsLambdaRole
(via WhereHavingRole
, OnClauseRole
):
Class Variable | allows_lambda |
Undocumented |
Inherited from SQLRole
(via WhereHavingRole
, OnClauseRole
, StructuralRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from BinaryElementRole
:
Class Variable | _role_name |
Undocumented |
Inherited from SQLRole
(via BinaryElementRole
, ExpressionElementRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from OrderByRole
:
Class Variable | _role_name |
Undocumented |
Inherited from AllowsLambdaRole
(via OrderByRole
):
Class Variable | allows_lambda |
Undocumented |
Inherited from SQLRole
(via OrderByRole
, ByOfRole
, ColumnListRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from ColumnsClauseRole
:
Class Variable | _role_name |
Undocumented |
Inherited from AllowsLambdaRole
(via ColumnsClauseRole
):
Class Variable | allows_lambda |
Undocumented |
Inherited from UsesInspection
(via ColumnsClauseRole
):
Class Variable | _post_inspect |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from SQLRole
(via ColumnsClauseRole
, ColumnListRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from LimitOffsetRole
:
Class Variable | _role_name |
Undocumented |
Inherited from SQLRole
(via LimitOffsetRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from DMLColumnRole
:
Class Variable | _role_name |
Undocumented |
Inherited from SQLRole
(via DMLColumnRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from DDLConstraintColumnRole
:
Class Variable | _role_name |
Undocumented |
Inherited from SQLRole
(via DDLConstraintColumnRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from DDLExpressionRole
:
Class Variable | _role_name |
Undocumented |
Inherited from SQLRole
(via DDLExpressionRole
, StructuralRole
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from ColumnOperators
:
Method | __add__ |
Implement the + operator. |
Method | __contains__ |
Undocumented |
Method | __div__ |
Implement the / operator. |
Method | __eq__ |
Implement the == operator. |
Method | __ge__ |
Implement the >= operator. |
Method | __getitem__ |
Implement the [] operator. |
Method | __gt__ |
Implement the > operator. |
Method | __le__ |
Implement the <= operator. |
Method | __lshift__ |
implement the << operator. |
Method | __lt__ |
Implement the < operator. |
Method | __mod__ |
Implement the % operator. |
Method | __mul__ |
Implement the * operator. |
Method | __ne__ |
Implement the != operator. |
Method | __neg__ |
Implement the - operator. |
Method | __radd__ |
Implement the + operator in reverse. |
Method | __rdiv__ |
Implement the / operator in reverse. |
Method | __rmod__ |
Implement the % operator in reverse. |
Method | __rmul__ |
Implement the * operator in reverse. |
Method | __rshift__ |
implement the >> operator. |
Method | __rsub__ |
Implement the - operator in reverse. |
Method | __rtruediv__ |
Implement the // operator in reverse. |
Method | __sub__ |
Implement the - operator. |
Method | __truediv__ |
Implement the // operator. |
Method | all_ |
Produce an _expression.all_ clause against the parent object. |
Method | any_ |
Produce an _expression.any_ clause against the parent object. |
Method | asc |
Produce a _expression.asc clause against the parent object. |
Method | between |
Produce a _expression.between clause against the parent object, given the lower and upper range. |
Method | collate |
Produce a _expression.collate clause against the parent object, given the collation string. |
Method | concat |
Implement the 'concat' operator. |
Method | contains |
Implement the 'contains' operator. |
Method | desc |
Produce a _expression.desc clause against the parent object. |
Method | distinct |
Produce a _expression.distinct clause against the parent object. |
Method | endswith |
Implement the 'endswith' operator. |
Method | ilike |
Implement the ilike operator, e.g. case insensitive LIKE. |
Method | in_ |
Implement the in operator. |
Method | is_ |
Implement the IS operator. |
Method | is_distinct_from |
Implement the IS DISTINCT FROM operator. |
Method | is_not |
Implement the IS NOT operator. |
Method | is_not_distinct_from |
Implement the IS NOT DISTINCT FROM operator. |
Method | like |
Implement the like operator. |
Method | match |
Implements a database-specific 'match' operator. |
Method | not_ilike |
implement the NOT ILIKE operator. |
Method | not_in |
implement the NOT IN operator. |
Method | not_like |
implement the NOT LIKE operator. |
Method | nulls_first |
Produce a _expression.nulls_first clause against the parent object. |
Method | nulls_last |
Produce a _expression.nulls_last clause against the parent object. |
Method | regexp_match |
Implements a database-specific 'regexp match' operator. |
Method | regexp_replace |
Implements a database-specific 'regexp replace' operator. |
Method | startswith |
Implement the startswith operator. |
Class Variable | __slots__ |
Undocumented |
Class Variable | timetuple |
Hack, allows datetime objects to be compared on the LHS. |
Inherited from Operators
(via ColumnOperators
):
Method | __and__ |
Implement the & operator. |
Method | __invert__ |
Implement the ~ operator. |
Method | __or__ |
Implement the | operator. |
Method | bool_op |
Return a custom boolean operator. |
Method | op |
Produce a generic operator function. |
Inherited from ClauseElement
:
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 | unique_params |
Return a copy with _expression.bindparam elements replaced. |
Method | __bool__ |
Undocumented |
Method | __getstate__ |
Undocumented |
Method | __invert__ |
Undocumented |
Method | __repr__ |
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 | _execute_on_connection |
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 | _from_objects |
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_lambda_element |
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 ClauseElement
):
Class Variable | allows_lambda |
Undocumented |
Class Variable | uses_inspection |
Undocumented |
Inherited from SupportsWrappingAnnotations
(via 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 ClauseElement
, SupportsWrappingAnnotations
):
Property | _annotations_cache_key |
Undocumented |
Inherited from MemoizedHasCacheKey
(via ClauseElement
):
Method | _generate_cache_key |
return a cache key. |
Inherited from HasCacheKey
(via 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 |
Method | _gen_cache_key |
return an optional cache key. |
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 HasCopyInternals
(via ClauseElement
):
Method | _copy_internals |
Reassign internal elements to be clones of themselves. |
Inherited from Traversible
(via ClauseElement
):
Method | get_children |
Return immediate child .visitors.Traversible elements of this .visitors.Traversible . |
Method | __class_getitem__ |
Undocumented |
Produce a type cast, i.e. CAST(<expression> AS <type>).
This is a shortcut to the _expression.cast
function.
Produce a column label, i.e. <columnname> AS <name>.
This is a shortcut to the _expression.label
function.
If 'name' is None, an anonymous label name will be generated.
sqlalchemy.sql.elements.CollectionAggregate
Operate on an argument.
This is the lowest level of operation, raises
NotImplementedError
by default.
Overriding this on a subclass can allow common
behavior to be applied to all operations.
For example, overriding .ColumnOperators
to apply func.lower() to the left and right
side:
class MyComparator(ColumnOperators): def operate(self, op, other): return op(func.lower(self), func.lower(other))
Parameters | |
op | Operator callable. |
*other | the 'other' side of the operation. Will be a single scalar for most operations. |
**kwargs | modifiers. These may be passed by special
operators such as ColumnOperators.contains . |
sqlalchemy.sql.elements.CollectionAggregate
Reverse operate on an argument.
Usage is the same as operate
.
sqlalchemy.dialects.postgresql.aggregate_order_by
, sqlalchemy.dialects.postgresql.array
, sqlalchemy.sql.elements.BinaryExpression
, sqlalchemy.sql.elements.FunctionFilter
, sqlalchemy.sql.elements.Label
, sqlalchemy.sql.elements.Tuple
, sqlalchemy.sql.elements.TypeCoerce
, sqlalchemy.sql.elements.UnaryExpression
, sqlalchemy.sql.selectable.ScalarSelect
, sqlalchemy.sql.compiler._CompileLabel
, sqlalchemy.sql.elements.BooleanClauseList
, sqlalchemy.sql.elements.Slice
Apply a 'grouping' to this _expression.ClauseElement
.
This method is overridden by subclasses to return a "grouping"
construct, i.e. parenthesis. In particular it's used by "binary"
expressions to provide a grouping around themselves when placed into a
larger expression, as well as by _expression.select
constructs when placed into the FROM clause of another
_expression.select
. (Note that subqueries should be
normally created using the _expression.Select.alias
method,
as many
platforms require nested SELECT statements to be named).
As expressions are composed together, the application of
self_group
is automatic - end-user code should never
need to use this method directly. Note that SQLAlchemy's
clause constructs take operator precedence into account -
so parenthesis might not be needed, for example, in
an expression like x OR (y AND z) - AND takes precedence
over OR.
The base self_group
method of
_expression.ClauseElement
just returns self.
_expression.ColumnElement
has a common ancestor to this _expression.ColumnElement
.list
=
sqlalchemy.sql.elements.Label
, sqlalchemy.sql.schema.Column
Undocumented
sqlalchemy.sql.elements.BindParameter
, sqlalchemy.sql.elements.ColumnClause
, sqlalchemy.sql.elements.Label
, sqlalchemy.sql.crud._multiparam_column
, sqlalchemy.sql.elements.TableValuedColumn
The 'key' that in some circumstances refers to this object in a Python namespace.
This typically refers to the "key" of the column as present in the
.c collection of a selectable, e.g. sometable.c["somekey"] would
return a _schema.Column
with a .key of "somekey".
bool
=
sqlalchemy.sql.elements.Label
, sqlalchemy.sql.schema.Column
Undocumented
sqlalchemy.dialects.postgresql.array
, sqlalchemy.sql.elements.Tuple
, sqlalchemy.sql.elements.NamedColumn
Undocumented
sqlalchemy.sql.elements.NamedColumn
label to apply to a column that is anon labeled, but repeated in the SELECT, so that we have to make an "extra anon" label that disambiguates it from the previous appearance.
these labels come out like "foo_bar_id__1" and have double underscores in them.
a suggested label to use in the case that the column has no name, which should be used if possible as the explicit 'AS <label>' where this expression would normally have an anon label.
this is essentially mostly what _proxy_key does except it returns None if the column has a normal name that can be used.
sqlalchemy.sql.elements.Label
, sqlalchemy.sql.elements.NamedColumn
_expression.ColumnElement
representing this
_expression.ColumnElement
as it appears in the select list of
a descending selectable.sqlalchemy.sql.elements.NamedColumn
A label-based version of 'key' that in some circumstances refers to this object in a Python namespace.
_tq_key_label comes into play when a select() statement is constructed with apply_labels(); in this case, all Column objects in the .c collection are rendered as <tablename>_<columnname> in SQL; this is essentially the value of ._label. But to locate those columns in the .c collection, the name is along the lines of <tablename>_<key>; that's the typical value of .key_label.
An 'uncached' version of proxy set.
This is so that we can read annotations from the list of columns without breaking the caching of the above proxy_set.
str
=
sqlalchemy.dialects.postgresql.aggregate_order_by
, sqlalchemy.dialects.postgresql.array
, sqlalchemy.sql.elements.BinaryExpression
, sqlalchemy.sql.elements.BindParameter
, sqlalchemy.sql.elements.Case
, sqlalchemy.sql.elements.Cast
, sqlalchemy.sql.elements.ColumnClause
, sqlalchemy.sql.elements.Extract
, sqlalchemy.sql.elements.False_
, sqlalchemy.sql.elements.FunctionFilter
, sqlalchemy.sql.elements.Label
, sqlalchemy.sql.elements.Null
, sqlalchemy.sql.elements.Over
, sqlalchemy.sql.elements.True_
, sqlalchemy.sql.elements.Tuple
, sqlalchemy.sql.elements.TypeCoerce
, sqlalchemy.sql.elements.UnaryExpression
, sqlalchemy.sql.elements.WithinGroup
, sqlalchemy.sql.functions.ScalarFunctionColumn
, sqlalchemy.sql.compiler._CompileLabel
, sqlalchemy.sql.elements._label_reference
, sqlalchemy.sql.elements._textual_label_reference
, sqlalchemy.sql.elements.BooleanClauseList
, sqlalchemy.sql.elements.CollationClause
, sqlalchemy.sql.elements.Slice
, sqlalchemy.sql.elements.TableValuedColumn
Undocumented
bool
=
sqlalchemy.sql.elements.Label
A flag that can be flipped to prevent a column from being resolvable by string label name.
The joined eager loader strategy in the ORM uses this, for example.
tuple
=
sqlalchemy.sql.elements.Label
, sqlalchemy.sql.schema.Column
, sqlalchemy.sql.elements.Grouping
Undocumented
bool
=
sqlalchemy.sql.elements.NamedColumn
sqlalchemy.sql.elements.Label
, sqlalchemy.sql.elements.Grouping
, sqlalchemy.sql.elements.NamedColumn
The named label that can be used to target this column in a result set in a "table qualified" context.
This label is almost always the label used when rendering <expr> AS <label> in a SELECT statement when using the LABEL_STYLE_TABLENAME_PLUS_COL label style, which is what the legacy ORM Query object uses as well.
For a regular Column bound to a Table, this is typically the label <tablename>_<columnname>. For other constructs, different rules may apply, such as anonymized labels and others.
Provides a constant 'anonymous key label' for this ColumnElement.
Compare to anon_label, except that the "key" of the column, if available, is used to generate the label.
This is used when a deduplicating key is placed into the columns collection of a selectable.
Provides a constant 'anonymous label' for this ColumnElement.
This is a label() expression which will be named at compile time. The same label() is returned each time anon_label is called so that expressions can reference anon_label multiple times, producing the same label name at compile time.
The compiler uses this function automatically at compile time for expressions that are known to be 'unnamed' like binary expressions and function calls.
sqlalchemy.sql.elements.NamedColumn
the 'name' that naturally applies this element when rendered in SQL.
Concretely, this is the "name" of a column or a label in a SELECT statement; <columnname> and <labelname> below:
SELECT <columnmame> FROM table SELECT column AS <labelname> FROM table
Above, the two names noted will be what's present in the DBAPI cursor.description as the names.
If this attribute returns None, it means that the SQL element as written does not have a 100% fully predictable "name" that would appear in the cursor.description. Examples include SQL functions, CAST functions, etc. While such things do return names in cursor.description, they are only predictable on a database-specific basis; e.g. an expression like MAX(table.col) may appear as the string max on one database (like PostgreSQL) or may appear as the whole expression max(table.col) on SQLite.
The default implementation looks for a .name attribute on the object, as has been the precedent established in SQLAlchemy for many years. An exception is made on the FunctionElement subclass so that the return value is always None.
sqlalchemy.dialects.postgresql.array
, sqlalchemy.sql.elements.Tuple
, sqlalchemy.sql.elements.BooleanClauseList
Undocumented
Undocumented
Undocumented
sqlalchemy.sql.compiler._CompileLabel
Undocumented
sqlalchemy.dialects.postgresql.aggregate_order_by
, sqlalchemy.dialects.postgresql.array
, sqlalchemy.sql.elements.BinaryExpression
, sqlalchemy.sql.elements.BindParameter
, sqlalchemy.sql.elements.Case
, sqlalchemy.sql.elements.Cast
, sqlalchemy.sql.elements.ColumnClause
, sqlalchemy.sql.elements.Extract
, sqlalchemy.sql.elements.False_
, sqlalchemy.sql.elements.FunctionFilter
, sqlalchemy.sql.elements.Label
, sqlalchemy.sql.elements.Null
, sqlalchemy.sql.elements.Over
, sqlalchemy.sql.elements.True_
, sqlalchemy.sql.elements.Tuple
, sqlalchemy.sql.elements.TypeCoerce
, sqlalchemy.sql.elements.UnaryExpression
, sqlalchemy.sql.elements.WithinGroup
, sqlalchemy.sql.functions.ScalarFunctionColumn
, sqlalchemy.sql.compiler._CompileLabel
, sqlalchemy.sql.crud._multiparam_column
, sqlalchemy.sql.elements.BooleanClauseList
, sqlalchemy.sql.elements.Grouping
, sqlalchemy.sql.elements.Slice
, sqlalchemy.sql.elements.TableValuedColumn
Undocumented