summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/expression.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/sql/expression.py')
-rw-r--r--lib/sqlalchemy/sql/expression.py205
1 files changed, 161 insertions, 44 deletions
diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py
index b69b6ee8c..aab9f46d4 100644
--- a/lib/sqlalchemy/sql/expression.py
+++ b/lib/sqlalchemy/sql/expression.py
@@ -15,43 +15,142 @@ class.
"""
__all__ = [
- 'Alias', 'any_', 'all_', 'ClauseElement', 'ColumnCollection', 'ColumnElement',
- 'CompoundSelect', 'Delete', 'FromClause', 'Insert', 'Join', 'Lateral',
- 'Select',
- 'Selectable', 'TableClause', 'Update', 'alias', 'and_', 'asc', 'between',
- 'bindparam', 'case', 'cast', 'column', 'delete', 'desc', 'distinct',
- 'except_', 'except_all', 'exists', 'extract', 'func', 'modifier',
- 'collate', 'insert', 'intersect', 'intersect_all', 'join', 'label',
- 'lateral', 'literal', 'literal_column', 'not_', 'null', 'nullsfirst',
- 'nullslast',
- 'or_', 'outparam', 'outerjoin', 'over', 'select', 'subquery',
- 'table', 'text',
- 'tuple_', 'type_coerce', 'quoted_name', 'union', 'union_all', 'update',
- 'within_group',
- 'TableSample', 'tablesample']
+ "Alias",
+ "any_",
+ "all_",
+ "ClauseElement",
+ "ColumnCollection",
+ "ColumnElement",
+ "CompoundSelect",
+ "Delete",
+ "FromClause",
+ "Insert",
+ "Join",
+ "Lateral",
+ "Select",
+ "Selectable",
+ "TableClause",
+ "Update",
+ "alias",
+ "and_",
+ "asc",
+ "between",
+ "bindparam",
+ "case",
+ "cast",
+ "column",
+ "delete",
+ "desc",
+ "distinct",
+ "except_",
+ "except_all",
+ "exists",
+ "extract",
+ "func",
+ "modifier",
+ "collate",
+ "insert",
+ "intersect",
+ "intersect_all",
+ "join",
+ "label",
+ "lateral",
+ "literal",
+ "literal_column",
+ "not_",
+ "null",
+ "nullsfirst",
+ "nullslast",
+ "or_",
+ "outparam",
+ "outerjoin",
+ "over",
+ "select",
+ "subquery",
+ "table",
+ "text",
+ "tuple_",
+ "type_coerce",
+ "quoted_name",
+ "union",
+ "union_all",
+ "update",
+ "within_group",
+ "TableSample",
+ "tablesample",
+]
from .visitors import Visitable
from .functions import func, modifier, FunctionElement, Function
from ..util.langhelpers import public_factory
-from .elements import ClauseElement, ColumnElement,\
- BindParameter, CollectionAggregate, UnaryExpression, BooleanClauseList, \
- Label, Cast, Case, ColumnClause, TextClause, Over, Null, \
- True_, False_, BinaryExpression, Tuple, TypeClause, Extract, \
- Grouping, WithinGroup, not_, quoted_name, \
- collate, literal_column, between,\
- literal, outparam, TypeCoerce, ClauseList, FunctionFilter
+from .elements import (
+ ClauseElement,
+ ColumnElement,
+ BindParameter,
+ CollectionAggregate,
+ UnaryExpression,
+ BooleanClauseList,
+ Label,
+ Cast,
+ Case,
+ ColumnClause,
+ TextClause,
+ Over,
+ Null,
+ True_,
+ False_,
+ BinaryExpression,
+ Tuple,
+ TypeClause,
+ Extract,
+ Grouping,
+ WithinGroup,
+ not_,
+ quoted_name,
+ collate,
+ literal_column,
+ between,
+ literal,
+ outparam,
+ TypeCoerce,
+ ClauseList,
+ FunctionFilter,
+)
-from .elements import SavepointClause, RollbackToSavepointClause, \
- ReleaseSavepointClause
+from .elements import (
+ SavepointClause,
+ RollbackToSavepointClause,
+ ReleaseSavepointClause,
+)
-from .base import ColumnCollection, Generative, Executable, \
- PARSE_AUTOCOMMIT
+from .base import ColumnCollection, Generative, Executable, PARSE_AUTOCOMMIT
-from .selectable import Alias, Join, Select, Selectable, TableClause, \
- CompoundSelect, CTE, FromClause, FromGrouping, Lateral, SelectBase, \
- alias, GenerativeSelect, subquery, HasCTE, HasPrefixes, HasSuffixes, \
- lateral, Exists, ScalarSelect, TextAsFrom, TableSample, tablesample
+from .selectable import (
+ Alias,
+ Join,
+ Select,
+ Selectable,
+ TableClause,
+ CompoundSelect,
+ CTE,
+ FromClause,
+ FromGrouping,
+ Lateral,
+ SelectBase,
+ alias,
+ GenerativeSelect,
+ subquery,
+ HasCTE,
+ HasPrefixes,
+ HasSuffixes,
+ lateral,
+ Exists,
+ ScalarSelect,
+ TextAsFrom,
+ TableSample,
+ tablesample,
+)
from .dml import Insert, Update, Delete, UpdateBase, ValuesBase
@@ -79,23 +178,30 @@ extract = public_factory(Extract, ".expression.extract")
tuple_ = public_factory(Tuple, ".expression.tuple_")
except_ = public_factory(CompoundSelect._create_except, ".expression.except_")
except_all = public_factory(
- CompoundSelect._create_except_all, ".expression.except_all")
+ CompoundSelect._create_except_all, ".expression.except_all"
+)
intersect = public_factory(
- CompoundSelect._create_intersect, ".expression.intersect")
+ CompoundSelect._create_intersect, ".expression.intersect"
+)
intersect_all = public_factory(
- CompoundSelect._create_intersect_all, ".expression.intersect_all")
+ CompoundSelect._create_intersect_all, ".expression.intersect_all"
+)
union = public_factory(CompoundSelect._create_union, ".expression.union")
union_all = public_factory(
- CompoundSelect._create_union_all, ".expression.union_all")
+ CompoundSelect._create_union_all, ".expression.union_all"
+)
exists = public_factory(Exists, ".expression.exists")
nullsfirst = public_factory(
- UnaryExpression._create_nullsfirst, ".expression.nullsfirst")
+ UnaryExpression._create_nullsfirst, ".expression.nullsfirst"
+)
nullslast = public_factory(
- UnaryExpression._create_nullslast, ".expression.nullslast")
+ UnaryExpression._create_nullslast, ".expression.nullslast"
+)
asc = public_factory(UnaryExpression._create_asc, ".expression.asc")
desc = public_factory(UnaryExpression._create_desc, ".expression.desc")
distinct = public_factory(
- UnaryExpression._create_distinct, ".expression.distinct")
+ UnaryExpression._create_distinct, ".expression.distinct"
+)
type_coerce = public_factory(TypeCoerce, ".expression.type_coerce")
true = public_factory(True_._instance, ".expression.true")
false = public_factory(False_._instance, ".expression.false")
@@ -105,19 +211,30 @@ outerjoin = public_factory(Join._create_outerjoin, ".expression.outerjoin")
insert = public_factory(Insert, ".expression.insert")
update = public_factory(Update, ".expression.update")
delete = public_factory(Delete, ".expression.delete")
-funcfilter = public_factory(
- FunctionFilter, ".expression.funcfilter")
+funcfilter = public_factory(FunctionFilter, ".expression.funcfilter")
# internal functions still being called from tests and the ORM,
# these might be better off in some other namespace
from .base import _from_objects
-from .elements import _literal_as_text, _clause_element_as_expr,\
- _is_column, _labeled, _only_column_elements, _string_or_unprintable, \
- _truncated_label, _clone, _cloned_difference, _cloned_intersection,\
- _column_as_key, _literal_as_binds, _select_iterables, \
- _corresponding_column_or_error, _literal_as_label_reference, \
- _expression_literal_as_text
+from .elements import (
+ _literal_as_text,
+ _clause_element_as_expr,
+ _is_column,
+ _labeled,
+ _only_column_elements,
+ _string_or_unprintable,
+ _truncated_label,
+ _clone,
+ _cloned_difference,
+ _cloned_intersection,
+ _column_as_key,
+ _literal_as_binds,
+ _select_iterables,
+ _corresponding_column_or_error,
+ _literal_as_label_reference,
+ _expression_literal_as_text,
+)
from .selectable import _interpret_as_from