1# dialects/_typing.py
2# Copyright (C) 2005-2024 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._typing import _DDLColumnArgument
16from ..sql.elements import DQLDMLClauseElement
17from ..sql.schema import ColumnCollectionConstraint
18from ..sql.schema import Index
19
20
21_OnConflictConstraintT = Union[str, ColumnCollectionConstraint, Index, None]
22_OnConflictIndexElementsT = Optional[Iterable[_DDLColumnArgument]]
23_OnConflictIndexWhereT = Optional[DQLDMLClauseElement]
24_OnConflictSetT = Optional[Mapping[Any, Any]]
25_OnConflictWhereT = Union[DQLDMLClauseElement, str, None]