Skip to content

Commit 6dd9d8c

Browse files
schema: add ColumnElement to Column.server_default (#95)
Fixed #81
1 parent 9a75067 commit 6dd9d8c

File tree

2 files changed

+35
-5
lines changed

2 files changed

+35
-5
lines changed

sqlalchemy-stubs/sql/schema.pyi

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ from .base import DialectKWArgs
2525
from .base import SchemaEventTarget
2626
from .elements import ClauseElement
2727
from .elements import ColumnClause
28+
from .elements import ColumnElement
2829
from .elements import TextClause
2930
from .selectable import TableClause
3031
from .. import util
@@ -125,7 +126,9 @@ class Column(DialectKWArgs, SchemaItem, ColumnClause[_TE]):
125126
primary_key: bool = ...
126127
nullable: bool = ...
127128
default: Optional[Any] = ...
128-
server_default: Optional[Union[FetchedValue, str, TextClause]] = ...
129+
server_default: Optional[
130+
Union[FetchedValue, str, TextClause, ColumnElement[_TE]]
131+
] = ...
129132
server_onupdate: Optional[FetchedValue] = ...
130133
index: Optional[bool] = ...
131134
unique: Optional[bool] = ...
@@ -152,7 +155,9 @@ class Column(DialectKWArgs, SchemaItem, ColumnClause[_TE]):
152155
nullable: bool = ...,
153156
onupdate: Optional[Any] = ...,
154157
primary_key: bool = ...,
155-
server_default: Optional[Union[FetchedValue, str, TextClause]] = ...,
158+
server_default: Optional[
159+
Union[FetchedValue, str, TextClause, ColumnElement[Any]]
160+
] = ...,
156161
server_onupdate: Optional[FetchedValue] = ...,
157162
quote: Optional[bool] = ...,
158163
unique: Optional[bool] = ...,
@@ -173,7 +178,9 @@ class Column(DialectKWArgs, SchemaItem, ColumnClause[_TE]):
173178
nullable: bool = ...,
174179
onupdate: Optional[Any] = ...,
175180
primary_key: bool = ...,
176-
server_default: Optional[Union[FetchedValue, str, TextClause]] = ...,
181+
server_default: Optional[
182+
Union[FetchedValue, str, TextClause, ColumnElement[Any]]
183+
] = ...,
177184
server_onupdate: Optional[FetchedValue] = ...,
178185
quote: Optional[bool] = ...,
179186
unique: Optional[bool] = ...,
@@ -196,7 +203,9 @@ class Column(DialectKWArgs, SchemaItem, ColumnClause[_TE]):
196203
nullable: bool = ...,
197204
onupdate: Optional[Any] = ...,
198205
primary_key: bool = ...,
199-
server_default: Optional[Union[FetchedValue, str, TextClause]] = ...,
206+
server_default: Optional[
207+
Union[FetchedValue, str, TextClause, ColumnElement[_TE]]
208+
] = ...,
200209
server_onupdate: Optional[FetchedValue] = ...,
201210
quote: Optional[bool] = ...,
202211
unique: Optional[bool] = ...,
@@ -218,7 +227,9 @@ class Column(DialectKWArgs, SchemaItem, ColumnClause[_TE]):
218227
nullable: bool = ...,
219228
onupdate: Optional[Any] = ...,
220229
primary_key: bool = ...,
221-
server_default: Optional[Union[FetchedValue, str, TextClause]] = ...,
230+
server_default: Optional[
231+
Union[FetchedValue, str, TextClause, ColumnElement[_TE]]
232+
] = ...,
222233
server_onupdate: Optional[FetchedValue] = ...,
223234
quote: Optional[bool] = ...,
224235
unique: Optional[bool] = ...,
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from sqlalchemy import Boolean
2+
from sqlalchemy import Column
3+
from sqlalchemy import DateTime
4+
from sqlalchemy import true
5+
from sqlalchemy.orm import registry
6+
from sqlalchemy.sql import functions as func
7+
8+
reg: registry = registry()
9+
10+
11+
@reg.mapped
12+
class A:
13+
__tablename__ = "a"
14+
15+
b = Column(Boolean, nullable=False, server_default=true())
16+
c = Column(DateTime, server_default=func.now(), nullable=False)
17+
18+
# EXPECTED: error: Cannot infer type argument 1 of "Column"
19+
d = Column(Boolean, server_default=func.now(), nullable=False)

0 commit comments

Comments
 (0)