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