summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/sybase/pysybase.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-03-18 19:44:12 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2010-03-18 19:44:12 +0000
commitbf4c5685e1a7fd37db1a0c3802333eac832f0780 (patch)
treeba3efda1077f42296bb6f0d3263c9b9e06c2e7e5 /lib/sqlalchemy/dialects/sybase/pysybase.py
parent9aa0868a4191738f7192e7f86c1879062e0bfd4f (diff)
downloadsqlalchemy-bf4c5685e1a7fd37db1a0c3802333eac832f0780.tar.gz
some weird numerictype coming back from pysybase, run through float()
Diffstat (limited to 'lib/sqlalchemy/dialects/sybase/pysybase.py')
-rw-r--r--lib/sqlalchemy/dialects/sybase/pysybase.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/sqlalchemy/dialects/sybase/pysybase.py b/lib/sqlalchemy/dialects/sybase/pysybase.py
index 8944465ee..6aad4e4cf 100644
--- a/lib/sqlalchemy/dialects/sybase/pysybase.py
+++ b/lib/sqlalchemy/dialects/sybase/pysybase.py
@@ -21,10 +21,18 @@ kind at this time.
"""
+from sqlalchemy import types as sqltypes, processors
from sqlalchemy.dialects.sybase.base import SybaseDialect, \
SybaseExecutionContext, SybaseSQLCompiler
+class _SybNumeric(sqltypes.Numeric):
+ def result_processor(self, dialect, type_):
+ if not self.asdecimal:
+ return processors.to_float
+ else:
+ return sqltypes.Numeric.result_processor(self, dialect, type_)
+
class SybaseExecutionContext_pysybase(SybaseExecutionContext):
def set_ddl_autocommit(self, dbapi_connection, value):
@@ -52,6 +60,11 @@ class SybaseDialect_pysybase(SybaseDialect):
execution_ctx_cls = SybaseExecutionContext_pysybase
statement_compiler = SybaseSQLCompiler_pysybase
+ colspecs={
+ sqltypes.Numeric:_SybNumeric,
+ sqltypes.Float:sqltypes.Float
+ }
+
@classmethod
def dbapi(cls):
import Sybase