]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- changed a few isinstance(value, Decimal) to "is not None", where appropriate
authorGaëtan de Menten <gdementen@gmail.com>
Sat, 28 Nov 2009 18:07:59 +0000 (18:07 +0000)
committerGaëtan de Menten <gdementen@gmail.com>
Sat, 28 Nov 2009 18:07:59 +0000 (18:07 +0000)
- fixed result processor for Numeric(asdecimal=False) on MSSQL.

lib/sqlalchemy/dialects/mssql/base.py
lib/sqlalchemy/dialects/mysql/mysqldb.py
lib/sqlalchemy/dialects/mysql/oursql.py
lib/sqlalchemy/dialects/postgresql/pypostgresql.py

index 6c89377992d5ecf8dbb09aa7642c400bed17b88f..bd275d75899aadac5cadd5fcf07e4a605076c742 100644 (file)
@@ -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):
index 846de6580cb7bddcf5acf4e963b43de500d5b4fa..c07ed87135d8c5458f6436821d4f4eca0194e47c 100644 (file)
@@ -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
index 5558c1a1928d6db950289f645d943cb6678b4661..79a36f535bf60cd5f613b13e9eba35afce4dd60b 100644 (file)
@@ -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
index 2c33b3eb5b1e9d45c212156749a71b003021ec52..77ed44512bfc9db8e90931d36aba7234c0869fb4 100644 (file)
@@ -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