diff options
| author | Gaëtan de Menten <gdementen@gmail.com> | 2009-11-28 18:07:59 +0000 |
|---|---|---|
| committer | Gaëtan de Menten <gdementen@gmail.com> | 2009-11-28 18:07:59 +0000 |
| commit | 7ea4fca4ed2c1fe04bcf13ccf476dd2aab750418 (patch) | |
| tree | dc3f0561fe40e279b064d9d23e0777ec075e19a2 /lib/sqlalchemy/dialects | |
| parent | 7fedc5e0708c27b646d32f88f532b34f0f898997 (diff) | |
| download | sqlalchemy-7ea4fca4ed2c1fe04bcf13ccf476dd2aab750418.tar.gz | |
- changed a few isinstance(value, Decimal) to "is not None", where appropriate
- fixed result processor for Numeric(asdecimal=False) on MSSQL.
Diffstat (limited to 'lib/sqlalchemy/dialects')
| -rw-r--r-- | lib/sqlalchemy/dialects/mssql/base.py | 8 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/mysqldb.py | 4 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/oursql.py | 4 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/postgresql/pypostgresql.py | 2 |
4 files changed, 12 insertions, 6 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py index 6c8937799..bd275d758 100644 --- a/lib/sqlalchemy/dialects/mssql/base.py +++ b/lib/sqlalchemy/dialects/mssql/base.py @@ -286,8 +286,14 @@ class _MSNumeric(sqltypes.Numeric): return value return process 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. def process(value): - return float(value) + if value is not None: + return float(value) + else: + return value return process def bind_processor(self, dialect): diff --git a/lib/sqlalchemy/dialects/mysql/mysqldb.py b/lib/sqlalchemy/dialects/mysql/mysqldb.py index 846de6580..c07ed8713 100644 --- a/lib/sqlalchemy/dialects/mysql/mysqldb.py +++ b/lib/sqlalchemy/dialects/mysql/mysqldb.py @@ -50,9 +50,9 @@ class MySQL_mysqldbCompiler(MySQLCompiler): class _DecimalType(_NumericType): def result_processor(self, dialect, coltype): if self.asdecimal: - return + return None def process(value): - if isinstance(value, decimal.Decimal): + if value is not None: return float(value) else: return value diff --git a/lib/sqlalchemy/dialects/mysql/oursql.py b/lib/sqlalchemy/dialects/mysql/oursql.py index 5558c1a19..79a36f535 100644 --- a/lib/sqlalchemy/dialects/mysql/oursql.py +++ b/lib/sqlalchemy/dialects/mysql/oursql.py @@ -38,9 +38,9 @@ class _PlainQuery(unicode): class _oursqlNumeric(NUMERIC): def result_processor(self, dialect, coltype): if self.asdecimal: - return + return None def process(value): - if isinstance(value, decimal.Decimal): + if value is not None: return float(value) else: return value diff --git a/lib/sqlalchemy/dialects/postgresql/pypostgresql.py b/lib/sqlalchemy/dialects/postgresql/pypostgresql.py index 2c33b3eb5..77ed44512 100644 --- a/lib/sqlalchemy/dialects/postgresql/pypostgresql.py +++ b/lib/sqlalchemy/dialects/postgresql/pypostgresql.py @@ -22,7 +22,7 @@ class PGNumeric(sqltypes.Numeric): return None else: def process(value): - if isinstance(value, decimal.Decimal): + if value is not None: return float(value) else: return value |
