diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-02-27 20:10:03 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-02-27 20:10:03 +0000 |
| commit | 6dbcb67e54c4c9ec62987a9d318e088d3d58e47b (patch) | |
| tree | 2604e34e3c0428ef2a0e1fe8e75c8bc0106ad9d5 /lib/sqlalchemy/dialects/mssql | |
| parent | cd6af2e03b8ffba0c7d6b8906c178fd1aa742920 (diff) | |
| download | sqlalchemy-6dbcb67e54c4c9ec62987a9d318e088d3d58e47b.tar.gz | |
further numeric fixes
Diffstat (limited to 'lib/sqlalchemy/dialects/mssql')
| -rw-r--r-- | lib/sqlalchemy/dialects/mssql/base.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py index dc767882b..988088fae 100644 --- a/lib/sqlalchemy/dialects/mssql/base.py +++ b/lib/sqlalchemy/dialects/mssql/base.py @@ -279,16 +279,22 @@ RESERVED_WORDS = set( class _MSNumeric(sqltypes.Numeric): def result_processor(self, dialect, coltype): if self.asdecimal: - if getattr(self, 'scale', None) is not None and dialect.supports_native_decimal: + # TODO: factor this down into the sqltypes.Numeric class, + # use dialect flags + if getattr(self, 'scale', None) is None: + # we're a "float". return a default decimal factory + return processors.to_decimal_processor_factory(decimal.Decimal) + elif dialect.supports_native_decimal: + # we're a "numeric", DBAPI will give us Decimal directly return None else: - return processors.to_decimal_processor_factory(decimal.Decimal) + # we're a "numeric", DBAPI returns floats, convert. + return processors.to_decimal_processor_factory(decimal.Decimal, self.scale) else: #XXX: if the DBAPI returns a float (this is likely, given the # processor when asdecimal is True), this should be a None # processor instead. return processors.to_float - return None def bind_processor(self, dialect): def process(value): |
