From 9363265d157a7347dd927b47b4501f11174cf393 Mon Sep 17 00:00:00 2001 From: David Euresti Date: Thu, 3 Oct 2019 06:56:17 -0700 Subject: [PATCH] Allow TableClause to with_for_update --- sqlalchemy-stubs/sql/selectable.pyi | 2 +- test/test-data/sqlalchemy-sql-selectable.test | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/sqlalchemy-stubs/sql/selectable.pyi b/sqlalchemy-stubs/sql/selectable.pyi index 56b2e88..8d26bcc 100644 --- a/sqlalchemy-stubs/sql/selectable.pyi +++ b/sqlalchemy-stubs/sql/selectable.pyi @@ -202,7 +202,7 @@ class GenerativeSelect(SelectBase): bind: Optional[Union[Engine, Connection]] = ..., autocommit: Optional[bool] = ...) -> None: ... def with_for_update(self: _GS, nowait: bool = ..., read: bool = ..., - of: Optional[Union[TextClause, Sequence[ColumnClause[Any]]]] = ..., + of: Optional[Union[TextClause, Sequence[ColumnClause[Any]], TableClause, Sequence[TableClause]]] = ..., skip_locked: bool = ..., key_share: bool = ...) -> _GS: ... def apply_labels(self: _GS) -> _GS: ... def limit(self: _GS, limit: Optional[Union[int, str, Visitable]]) -> _GS: ... diff --git a/test/test-data/sqlalchemy-sql-selectable.test b/test/test-data/sqlalchemy-sql-selectable.test index 313f2e8..a79f05b 100644 --- a/test/test-data/sqlalchemy-sql-selectable.test +++ b/test/test-data/sqlalchemy-sql-selectable.test @@ -68,3 +68,11 @@ t = table('user', column('id'), column('name'), column('description'), column('a st = table('stuff', column('id')) st.outerjoin(t, onclause=and_(st.c.id == t.c.id, t.c.name == t.c.description)) [out] + +[case testSelectableSelectWithForUpdateOfTable] +from sqlalchemy import table, select, column, alias, func + +t1 = table('user', column('id'), column('name'), column('description'), column('articles')) +t2 = table('stuff', column('id')) +t1.join(t2).select().with_for_update(of=t1) +[out]