]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
Add concept of "implicit boolean", treat as native
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 15 Aug 2018 21:11:14 +0000 (17:11 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 15 Aug 2018 21:15:24 +0000 (17:15 -0400)
commit462ccd9ff18d2e428b20ec3f596391a275472140
tree45367cbdecf3f3d7928d43dcf556a9703bc55a4a
parentdfa47b454a1d873b5746263f638d757c70edd3e1
Add concept of "implicit boolean", treat as native

Fixed issue that is closely related to :ticket:`3639` where an expression
rendered in a boolean context on a non-native boolean backend would
be compared to 1/0 even though it is already an implcitly boolean
expression, when :meth:`.ColumnElement.self_group` were used.  While this
does not affect the user-friendly backends (MySQL, SQLite) it was not
handled by Oracle (and possibly SQL Server).   Whether or not the
expression is implicitly boolean on any database is now determined
up front as an additional check to not generate the integer comparison
within the compliation of the statement.

Fixes: #4320
Change-Id: Iae0a65e5c01bd576e64733c3651e1e1a1a1b240c
doc/build/changelog/unreleased_12/4320.rst [new file with mode: 0644]
lib/sqlalchemy/sql/compiler.py
lib/sqlalchemy/sql/elements.py
lib/sqlalchemy/sql/operators.py
lib/sqlalchemy/sql/selectable.py
test/sql/test_operators.py