--- /dev/null
+.. change::
+ :tags: typing, sql
+ :tickets: 9656
+
+ Added type ``ColumnExpressionArgument`` as a public alias of an internal
+ type. This type is useful since it's what' accepted by the sqlalchemy in
+ many api calls, such as :meth:`_sql.Select.where`, :meth:`_sql.and` and
+ many other.
from .schema import Sequence as Sequence
from .schema import Table as Table
from .schema import UniqueConstraint as UniqueConstraint
+from .sql import ColumnExpressionArgument as ColumnExpressionArgument
from .sql import SelectLabelStyle as SelectLabelStyle
from .sql.expression import Alias as Alias
from .sql.expression import alias as alias
from typing import Any
from typing import TYPE_CHECKING
+from ._typing import ColumnExpressionArgument as ColumnExpressionArgument
from .base import Executable as Executable
from .compiler import COLLECT_CARTESIAN_PRODUCTS as COLLECT_CARTESIAN_PRODUCTS
from .compiler import FROM_LINTING as FROM_LINTING
from ..inspection import Inspectable
from ..util.typing import Literal
from ..util.typing import Protocol
+from ..util.typing import TypeAlias
if TYPE_CHECKING:
from datetime import date
Callable[[], "ColumnElement[_T]"],
"LambdaElement",
]
-"""narrower "column expression" argument.
+"See docs in public alias ColumnExpressionArgument."
+
+ColumnExpressionArgument: TypeAlias = _ColumnExpressionArgument[_T]
+"""Narrower "column expression" argument.
This type is used for all the other "column" kinds of expressions that
typically represent a single SQL column expression, not a set of columns the
This includes ColumnElement, or ORM-mapped attributes that will have a
`__clause_element__()` method, it also has the ExpressionElementRole
overall which brings in the TextClause object also.
-
"""
-
_ColumnExpressionOrLiteralArgument = Union[Any, _ColumnExpressionArgument[_T]]
_ColumnExpressionOrStrLabelArgument = Union[str, _ColumnExpressionArgument[_T]]