From: Gaƫtan de Menten Date: Sat, 28 Nov 2009 18:07:59 +0000 (+0000) Subject: - changed a few isinstance(value, Decimal) to "is not None", where appropriate X-Git-Tag: rel_0_6beta1~152 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7ea4fca4ed2c1fe04bcf13ccf476dd2aab750418;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - changed a few isinstance(value, Decimal) to "is not None", where appropriate - fixed result processor for Numeric(asdecimal=False) on MSSQL. --- diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py index 6c89377992..bd275d7589 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 846de6580c..c07ed87135 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 5558c1a192..79a36f535b 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 2c33b3eb5b..77ed44512b 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