|
10 | 10 | )
|
11 | 11 |
|
12 | 12 | from sqlalchemy import util
|
| 13 | +from sqlalchemy.engine.cursor import CursorResult |
13 | 14 | from sqlalchemy.engine.interfaces import _CoreAnyExecuteParams
|
14 | 15 | from sqlalchemy.engine.result import Result, ScalarResult, TupleResult
|
15 | 16 | from sqlalchemy.orm import Query as _Query
|
16 | 17 | from sqlalchemy.orm import Session as _Session
|
17 | 18 | from sqlalchemy.orm._typing import OrmExecuteOptionsParameter
|
18 | 19 | from sqlalchemy.sql._typing import _ColumnsClauseArgument
|
19 | 20 | from sqlalchemy.sql.base import Executable as _Executable
|
| 21 | +from sqlalchemy.sql.dml import UpdateBase |
20 | 22 | from sqlmodel.sql.base import Executable
|
21 | 23 | from sqlmodel.sql.expression import Select, SelectOfScalar
|
22 | 24 | from typing_extensions import deprecated
|
@@ -49,20 +51,35 @@ def exec(
|
49 | 51 | _add_event: Optional[Any] = None,
|
50 | 52 | ) -> ScalarResult[_TSelectParam]: ...
|
51 | 53 |
|
| 54 | + @overload |
| 55 | + def exec( |
| 56 | + self, |
| 57 | + statement: UpdateBase, |
| 58 | + *, |
| 59 | + params: Optional[Union[Mapping[str, Any], Sequence[Mapping[str, Any]]]] = None, |
| 60 | + execution_options: Mapping[str, Any] = util.EMPTY_DICT, |
| 61 | + bind_arguments: Optional[Dict[str, Any]] = None, |
| 62 | + _parent_execute_state: Optional[Any] = None, |
| 63 | + _add_event: Optional[Any] = None, |
| 64 | + ) -> CursorResult[Any]: ... |
| 65 | + |
52 | 66 | def exec(
|
53 | 67 | self,
|
54 | 68 | statement: Union[
|
55 | 69 | Select[_TSelectParam],
|
56 | 70 | SelectOfScalar[_TSelectParam],
|
57 | 71 | Executable[_TSelectParam],
|
| 72 | + UpdateBase, |
58 | 73 | ],
|
59 | 74 | *,
|
60 | 75 | params: Optional[Union[Mapping[str, Any], Sequence[Mapping[str, Any]]]] = None,
|
61 | 76 | execution_options: Mapping[str, Any] = util.EMPTY_DICT,
|
62 | 77 | bind_arguments: Optional[Dict[str, Any]] = None,
|
63 | 78 | _parent_execute_state: Optional[Any] = None,
|
64 | 79 | _add_event: Optional[Any] = None,
|
65 |
| - ) -> Union[TupleResult[_TSelectParam], ScalarResult[_TSelectParam]]: |
| 80 | + ) -> Union[ |
| 81 | + TupleResult[_TSelectParam], ScalarResult[_TSelectParam], CursorResult[Any] |
| 82 | + ]: |
66 | 83 | results = super().execute(
|
67 | 84 | statement,
|
68 | 85 | params=params,
|
|
0 commit comments