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