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 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 tuple_ as tuple_ 
    46from ._elements_constructors import type_coerce as type_coerce 
    47from ._elements_constructors import within_group as within_group 
    48from ._selectable_constructors import alias as alias 
    49from ._selectable_constructors import cte as cte 
    50from ._selectable_constructors import except_ as except_ 
    51from ._selectable_constructors import except_all as except_all 
    52from ._selectable_constructors import exists as exists 
    53from ._selectable_constructors import intersect as intersect 
    54from ._selectable_constructors import intersect_all as intersect_all 
    55from ._selectable_constructors import join as join 
    56from ._selectable_constructors import lateral as lateral 
    57from ._selectable_constructors import outerjoin as outerjoin 
    58from ._selectable_constructors import select as select 
    59from ._selectable_constructors import table as table 
    60from ._selectable_constructors import tablesample as tablesample 
    61from ._selectable_constructors import union as union 
    62from ._selectable_constructors import union_all as union_all 
    63from ._selectable_constructors import values as values 
    64from ._typing import ColumnExpressionArgument as ColumnExpressionArgument 
    65from .base import _from_objects as _from_objects 
    66from .base import _select_iterables as _select_iterables 
    67from .base import ColumnCollection as ColumnCollection 
    68from .base import Executable as Executable 
    69from .cache_key import CacheKey as CacheKey 
    70from .dml import Delete as Delete 
    71from .dml import Insert as Insert 
    72from .dml import Update as Update 
    73from .dml import UpdateBase as UpdateBase 
    74from .dml import ValuesBase as ValuesBase 
    75from .elements import _truncated_label as _truncated_label 
    76from .elements import AggregateOrderBy as AggregateOrderBy 
    77from .elements import BinaryExpression as BinaryExpression 
    78from .elements import BindParameter as BindParameter 
    79from .elements import BooleanClauseList as BooleanClauseList 
    80from .elements import Case as Case 
    81from .elements import Cast as Cast 
    82from .elements import ClauseElement as ClauseElement 
    83from .elements import ClauseList as ClauseList 
    84from .elements import CollectionAggregate as CollectionAggregate 
    85from .elements import ColumnClause as ColumnClause 
    86from .elements import ColumnElement as ColumnElement 
    87from .elements import DMLTargetCopy as DMLTargetCopy 
    88from .elements import ExpressionClauseList as ExpressionClauseList 
    89from .elements import Extract as Extract 
    90from .elements import False_ as False_ 
    91from .elements import FunctionFilter as FunctionFilter 
    92from .elements import Grouping as Grouping 
    93from .elements import Label as Label 
    94from .elements import literal as literal 
    95from .elements import literal_column as literal_column 
    96from .elements import Null as Null 
    97from .elements import OrderByList as OrderByList 
    98from .elements import Over as Over 
    99from .elements import quoted_name as quoted_name 
    100from .elements import ReleaseSavepointClause as ReleaseSavepointClause 
    101from .elements import RollbackToSavepointClause as RollbackToSavepointClause 
    102from .elements import SavepointClause as SavepointClause 
    103from .elements import SQLColumnExpression as SQLColumnExpression 
    104from .elements import TextClause as TextClause 
    105from .elements import True_ as True_ 
    106from .elements import TryCast as TryCast 
    107from .elements import Tuple as Tuple 
    108from .elements import TypeClause as TypeClause 
    109from .elements import TypeCoerce as TypeCoerce 
    110from .elements import UnaryExpression as UnaryExpression 
    111from .elements import WithinGroup as WithinGroup 
    112from .functions import func as func 
    113from .functions import Function as Function 
    114from .functions import FunctionElement as FunctionElement 
    115from .functions import modifier as modifier 
    116from .lambdas import lambda_stmt as lambda_stmt 
    117from .lambdas import LambdaElement as LambdaElement 
    118from .lambdas import StatementLambdaElement as StatementLambdaElement 
    119from .operators import ColumnOperators as ColumnOperators 
    120from .operators import custom_op as custom_op 
    121from .operators import OperatorClass as OperatorClass 
    122from .operators import Operators as Operators 
    123from .selectable import Alias as Alias 
    124from .selectable import AliasedReturnsRows as AliasedReturnsRows 
    125from .selectable import CompoundSelect as CompoundSelect 
    126from .selectable import CTE as CTE 
    127from .selectable import Exists as Exists 
    128from .selectable import FromClause as FromClause 
    129from .selectable import FromGrouping as FromGrouping 
    130from .selectable import GenerativeSelect as GenerativeSelect 
    131from .selectable import HasCTE as HasCTE 
    132from .selectable import HasPrefixes as HasPrefixes 
    133from .selectable import HasSuffixes as HasSuffixes 
    134from .selectable import Join as Join 
    135from .selectable import LABEL_STYLE_DEFAULT as LABEL_STYLE_DEFAULT 
    136from .selectable import ( 
    137    LABEL_STYLE_DISAMBIGUATE_ONLY as LABEL_STYLE_DISAMBIGUATE_ONLY, 
    138) 
    139from .selectable import LABEL_STYLE_NONE as LABEL_STYLE_NONE 
    140from .selectable import ( 
    141    LABEL_STYLE_TABLENAME_PLUS_COL as LABEL_STYLE_TABLENAME_PLUS_COL, 
    142) 
    143from .selectable import Lateral as Lateral 
    144from .selectable import ReturnsRows as ReturnsRows 
    145from .selectable import ScalarSelect as ScalarSelect 
    146from .selectable import ScalarValues as ScalarValues 
    147from .selectable import Select as Select 
    148from .selectable import Selectable as Selectable 
    149from .selectable import SelectBase as SelectBase 
    150from .selectable import SelectLabelStyle as SelectLabelStyle 
    151from .selectable import Subquery as Subquery 
    152from .selectable import TableClause as TableClause 
    153from .selectable import TableSample as TableSample 
    154from .selectable import TableValuedAlias as TableValuedAlias 
    155from .selectable import TextAsFrom as TextAsFrom 
    156from .selectable import TextualSelect as TextualSelect 
    157from .selectable import Values as Values 
    158from .visitors import Visitable as Visitable 
    159 
    160nullsfirst = nulls_first 
    161"""Synonym for the :func:`.nulls_first` function.""" 
    162 
    163 
    164nullslast = nulls_last 
    165"""Synonym for the :func:`.nulls_last` function."""