diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-06-26 16:50:24 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2017-06-26 16:50:24 -0400 |
| commit | 563180f7d46b24bd334d227104c90bf8cdb81158 (patch) | |
| tree | e4423138b130b9fc248e2bae3a3cd0cca5771a59 /lib/sqlalchemy/sql | |
| parent | 33d083c0347ccfb80fa546b0a580035ac7c48983 (diff) | |
| download | sqlalchemy-563180f7d46b24bd334d227104c90bf8cdb81158.tar.gz | |
Coerce to float for Float with all native decimal backends
The result processor for the :class:`.Float` type now unconditionally
runs values through the ``float()`` processor if the dialect
specifies that it also supports "native decimal" mode. While most
backends will deliver Python ``float`` objects for a floating point
datatype, the MySQL backends in some cases lack the typing information
in order to provide this and return ``Decimal`` unless the float
conversion is done.
Change-Id: I638f1480fb00a507036efaf0e0080f26893d98ad
Fixes: #4020
Diffstat (limited to 'lib/sqlalchemy/sql')
| -rw-r--r-- | lib/sqlalchemy/sql/sqltypes.py | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/sqlalchemy/sql/sqltypes.py b/lib/sqlalchemy/sql/sqltypes.py index 5b53f390e..6838baa5f 100644 --- a/lib/sqlalchemy/sql/sqltypes.py +++ b/lib/sqlalchemy/sql/sqltypes.py @@ -702,6 +702,8 @@ class Float(Numeric): return processors.to_decimal_processor_factory( decimal.Decimal, self._effective_decimal_return_scale) + elif dialect.supports_native_decimal: + return processors.to_float else: return None |
