Skip to content

Commit f898bb1

Browse files
committed
Allow session.exec(delete(Table)) to delete all rows from a table
1 parent 6c0410e commit f898bb1

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

sqlmodel/orm/session.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from sqlalchemy.orm._typing import OrmExecuteOptionsParameter
1818
from sqlalchemy.sql._typing import _ColumnsClauseArgument
1919
from sqlalchemy.sql.base import Executable as _Executable
20+
from sqlalchemy.sql import Delete
2021
from sqlmodel.sql.base import Executable
2122
from sqlmodel.sql.expression import Select, SelectOfScalar
2223
from typing_extensions import deprecated
@@ -49,20 +50,34 @@ def exec(
4950
_add_event: Optional[Any] = None,
5051
) -> ScalarResult[_TSelectParam]: ...
5152

53+
@overload
54+
def exec(
55+
self,
56+
statement: Delete[_TSelectParam],
57+
*,
58+
params: Optional[Union[Mapping[str, Any], Sequence[Mapping[str, Any]]]] = None,
59+
execution_options: Mapping[str, Any] = util.EMPTY_DICT,
60+
bind_arguments: Optional[Dict[str, Any]] = None,
61+
_parent_execute_state: Optional[Any] = None,
62+
_add_event: Optional[Any] = None,
63+
) -> None:
64+
...
65+
5266
def exec(
5367
self,
5468
statement: Union[
5569
Select[_TSelectParam],
5670
SelectOfScalar[_TSelectParam],
5771
Executable[_TSelectParam],
72+
Delete[_TSelectParam],
5873
],
5974
*,
6075
params: Optional[Union[Mapping[str, Any], Sequence[Mapping[str, Any]]]] = None,
6176
execution_options: Mapping[str, Any] = util.EMPTY_DICT,
6277
bind_arguments: Optional[Dict[str, Any]] = None,
6378
_parent_execute_state: Optional[Any] = None,
6479
_add_event: Optional[Any] = None,
65-
) -> Union[TupleResult[_TSelectParam], ScalarResult[_TSelectParam]]:
80+
) -> Union[TupleResult[_TSelectParam], ScalarResult[_TSelectParam], None]:
6681
results = super().execute(
6782
statement,
6883
params=params,

0 commit comments

Comments
 (0)