1# dialects/_typing.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
7from __future__ import annotations
8
9from typing import Any
10from typing import Iterable
11from typing import Mapping
12from typing import Optional
13from typing import Union
14
15from ..sql import roles
16from ..sql.base import ColumnCollection
17from ..sql.schema import Column
18from ..sql.schema import ColumnCollectionConstraint
19from ..sql.schema import Index
20
21
22_OnConflictConstraintT = Union[str, ColumnCollectionConstraint, Index, None]
23_OnConflictIndexElementsT = Optional[
24 Iterable[Union[Column[Any], str, roles.DDLConstraintColumnRole]]
25]
26_OnConflictIndexWhereT = Optional[roles.WhereHavingRole]
27_OnConflictSetT = Optional[
28 Union[Mapping[Any, Any], ColumnCollection[Any, Any]]
29]
30_OnConflictWhereT = Optional[roles.WhereHavingRole]