From: Federico Caselli Date: Wed, 20 Mar 2024 21:18:35 +0000 (+0100) Subject: A scalar subquery that returns bool is now correctly typed X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf7289f9d4218275d32ce7cfcb24a8da3475d95d;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git A scalar subquery that returns bool is now correctly typed Fixes: #10937 Change-Id: Iba4986be14fefd4210b727ddb7ae7e9291ab7f7f --- diff --git a/lib/sqlalchemy/sql/_typing.py b/lib/sqlalchemy/sql/_typing.py index 570db02aac..6d54f415fc 100644 --- a/lib/sqlalchemy/sql/_typing.py +++ b/lib/sqlalchemy/sql/_typing.py @@ -108,6 +108,7 @@ _NOT_ENTITY = TypeVar( "_NOT_ENTITY", int, str, + bool, "datetime", "date", "time", diff --git a/test/typing/plain_files/orm/orm_querying.py b/test/typing/plain_files/orm/orm_querying.py index 3251147dd6..83e0fefabb 100644 --- a/test/typing/plain_files/orm/orm_querying.py +++ b/test/typing/plain_files/orm/orm_querying.py @@ -3,6 +3,7 @@ from __future__ import annotations from sqlalchemy import ColumnElement from sqlalchemy import ForeignKey from sqlalchemy import orm +from sqlalchemy import ScalarSelect from sqlalchemy import select from sqlalchemy.orm import aliased from sqlalchemy.orm import DeclarativeBase @@ -134,3 +135,12 @@ def test_10959_with_loader_criteria() -> None: orm.with_loader_criteria(A, lambda cls: cls.data == "some data") orm.with_loader_criteria(A, where_criteria) + + +def test_10937() -> None: + stmt: ScalarSelect[bool] = select(A.id == B.id).scalar_subquery() + stmt1: ScalarSelect[bool] = select(A.id > 0).scalar_subquery() + stmt2: ScalarSelect[int] = select(A.id + 2).scalar_subquery() + stmt3: ScalarSelect[str] = select(A.data + B.data).scalar_subquery() + + select(stmt, stmt2, stmt3, stmt1)