1# sql/expression.py
2# Copyright (C) 2005-2026 the SQLAlchemy authors and contributors
3# <see AUTHORS file>
4#
5# This module is part of SQLAlchemy and is released under
6# the MIT License: https://www.opensource.org/licenses/mit-license.php
7
8"""Defines the public namespace for SQL expression constructs."""
9
10
11from __future__ import annotations
12
13from ._dml_constructors import delete as delete
14from ._dml_constructors import insert as insert
15from ._dml_constructors import update as update
16from ._elements_constructors import aggregate_order_by as aggregate_order_by
17from ._elements_constructors import all_ as all_
18from ._elements_constructors import and_ as and_
19from ._elements_constructors import any_ as any_
20from ._elements_constructors import asc as asc
21from ._elements_constructors import between as between
22from ._elements_constructors import bindparam as bindparam
23from ._elements_constructors import bitwise_not as bitwise_not
24from ._elements_constructors import case as case
25from ._elements_constructors import cast as cast
26from ._elements_constructors import collate as collate
27from ._elements_constructors import column as column
28from ._elements_constructors import desc as desc
29from ._elements_constructors import distinct as distinct
30from ._elements_constructors import extract as extract
31from ._elements_constructors import false as false
32from ._elements_constructors import from_dml_column as from_dml_column
33from ._elements_constructors import funcfilter as funcfilter
34from ._elements_constructors import label as label
35from ._elements_constructors import not_ as not_
36from ._elements_constructors import null as null
37from ._elements_constructors import nulls_first as nulls_first
38from ._elements_constructors import nulls_last as nulls_last
39from ._elements_constructors import or_ as or_
40from ._elements_constructors import outparam as outparam
41from ._elements_constructors import over as over
42from ._elements_constructors import text as text
43from ._elements_constructors import true as true
44from ._elements_constructors import try_cast as try_cast
45from ._elements_constructors import tstring as tstring
46from ._elements_constructors import tuple_ as tuple_
47from ._elements_constructors import type_coerce as type_coerce
48from ._elements_constructors import within_group as within_group
49from ._selectable_constructors import alias as alias
50from ._selectable_constructors import cte as cte
51from ._selectable_constructors import except_ as except_
52from ._selectable_constructors import except_all as except_all
53from ._selectable_constructors import exists as exists
54from ._selectable_constructors import intersect as intersect
55from ._selectable_constructors import intersect_all as intersect_all
56from ._selectable_constructors import join as join
57from ._selectable_constructors import lateral as lateral
58from ._selectable_constructors import outerjoin as outerjoin
59from ._selectable_constructors import select as select
60from ._selectable_constructors import table as table
61from ._selectable_constructors import tablesample as tablesample
62from ._selectable_constructors import union as union
63from ._selectable_constructors import union_all as union_all
64from ._selectable_constructors import values as values
65from ._typing import ColumnExpressionArgument as ColumnExpressionArgument
66from .base import _from_objects as _from_objects
67from .base import _select_iterables as _select_iterables
68from .base import ColumnCollection as ColumnCollection
69from .base import Executable as Executable
70from .base import ExecutableStatement as ExecutableStatement
71from .base import WriteableColumnCollection as WriteableColumnCollection
72from .cache_key import CacheKey as CacheKey
73from .dml import Delete as Delete
74from .dml import Insert as Insert
75from .dml import Update as Update
76from .dml import UpdateBase as UpdateBase
77from .dml import ValuesBase as ValuesBase
78from .elements import _truncated_label as _truncated_label
79from .elements import AggregateOrderBy as AggregateOrderBy
80from .elements import BinaryExpression as BinaryExpression
81from .elements import BindParameter as BindParameter
82from .elements import BooleanClauseList as BooleanClauseList
83from .elements import Case as Case
84from .elements import Cast as Cast
85from .elements import ClauseElement as ClauseElement
86from .elements import ClauseList as ClauseList
87from .elements import CollectionAggregate as CollectionAggregate
88from .elements import ColumnClause as ColumnClause
89from .elements import ColumnElement as ColumnElement
90from .elements import DMLTargetCopy as DMLTargetCopy
91from .elements import ExpressionClauseList as ExpressionClauseList
92from .elements import Extract as Extract
93from .elements import False_ as False_
94from .elements import FrameClause as FrameClause
95from .elements import FrameClauseType as FrameClauseType
96from .elements import FunctionFilter as FunctionFilter
97from .elements import Grouping as Grouping
98from .elements import Label as Label
99from .elements import literal as literal
100from .elements import literal_column as literal_column
101from .elements import Null as Null
102from .elements import OrderByList as OrderByList
103from .elements import Over as Over
104from .elements import quoted_name as quoted_name
105from .elements import ReleaseSavepointClause as ReleaseSavepointClause
106from .elements import RollbackToSavepointClause as RollbackToSavepointClause
107from .elements import SavepointClause as SavepointClause
108from .elements import SQLColumnExpression as SQLColumnExpression
109from .elements import TableValuedColumn as TableValuedColumn
110from .elements import TextClause as TextClause
111from .elements import True_ as True_
112from .elements import TryCast as TryCast
113from .elements import TString as TString
114from .elements import Tuple as Tuple
115from .elements import TypeClause as TypeClause
116from .elements import TypeCoerce as TypeCoerce
117from .elements import UnaryExpression as UnaryExpression
118from .elements import WithinGroup as WithinGroup
119from .functions import func as func
120from .functions import Function as Function
121from .functions import FunctionElement as FunctionElement
122from .functions import modifier as modifier
123from .lambdas import lambda_stmt as lambda_stmt
124from .lambdas import LambdaElement as LambdaElement
125from .lambdas import StatementLambdaElement as StatementLambdaElement
126from .operators import ColumnOperators as ColumnOperators
127from .operators import custom_op as custom_op
128from .operators import OperatorClass as OperatorClass
129from .operators import Operators as Operators
130from .selectable import Alias as Alias
131from .selectable import AliasedReturnsRows as AliasedReturnsRows
132from .selectable import CompoundSelect as CompoundSelect
133from .selectable import CTE as CTE
134from .selectable import Exists as Exists
135from .selectable import FromClause as FromClause
136from .selectable import FromGrouping as FromGrouping
137from .selectable import GenerativeSelect as GenerativeSelect
138from .selectable import HasCTE as HasCTE
139from .selectable import HasPrefixes as HasPrefixes
140from .selectable import HasSuffixes as HasSuffixes
141from .selectable import Join as Join
142from .selectable import LABEL_STYLE_DEFAULT as LABEL_STYLE_DEFAULT
143from .selectable import (
144 LABEL_STYLE_DISAMBIGUATE_ONLY as LABEL_STYLE_DISAMBIGUATE_ONLY,
145)
146from .selectable import LABEL_STYLE_NONE as LABEL_STYLE_NONE
147from .selectable import (
148 LABEL_STYLE_TABLENAME_PLUS_COL as LABEL_STYLE_TABLENAME_PLUS_COL,
149)
150from .selectable import Lateral as Lateral
151from .selectable import ReturnsRows as ReturnsRows
152from .selectable import ScalarSelect as ScalarSelect
153from .selectable import ScalarValues as ScalarValues
154from .selectable import Select as Select
155from .selectable import Selectable as Selectable
156from .selectable import SelectBase as SelectBase
157from .selectable import SelectLabelStyle as SelectLabelStyle
158from .selectable import Subquery as Subquery
159from .selectable import TableClause as TableClause
160from .selectable import TableSample as TableSample
161from .selectable import TableValuedAlias as TableValuedAlias
162from .selectable import TextAsFrom as TextAsFrom
163from .selectable import TextualSelect as TextualSelect
164from .selectable import Values as Values
165from .visitors import Visitable as Visitable
166
167nullsfirst = nulls_first
168"""Synonym for the :func:`.nulls_first` function."""
169
170
171nullslast = nulls_last
172"""Synonym for the :func:`.nulls_last` function."""