diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-03-19 11:17:14 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-03-19 11:17:14 -0400 |
| commit | 5be0d3133bb3591ca31e2da0a01fb3d3038aa9f8 (patch) | |
| tree | b87ada594b4023536cece6698005571e73758408 /lib/sqlalchemy/dialects/sybase | |
| parent | b2c2f58d983147a27031e20b95af4191b2aa8356 (diff) | |
| download | sqlalchemy-5be0d3133bb3591ca31e2da0a01fb3d3038aa9f8.tar.gz | |
switching Decimal treatment in MSSQL to be pyodbc specific, added
to connector to share between sybase/mssql. Going
with turning decimals with very low significant digit to floats,
seems to work so far.
Diffstat (limited to 'lib/sqlalchemy/dialects/sybase')
| -rw-r--r-- | lib/sqlalchemy/dialects/sybase/pyodbc.py | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/lib/sqlalchemy/dialects/sybase/pyodbc.py b/lib/sqlalchemy/dialects/sybase/pyodbc.py index 61cf333da..893815930 100644 --- a/lib/sqlalchemy/dialects/sybase/pyodbc.py +++ b/lib/sqlalchemy/dialects/sybase/pyodbc.py @@ -29,27 +29,12 @@ Currently *not* supported are:: """ from sqlalchemy.dialects.sybase.base import SybaseDialect, SybaseExecutionContext -from sqlalchemy.connectors.pyodbc import PyODBCConnector - -import decimal -from sqlalchemy import processors, types as sqltypes - -# TODO: should this be part of pyodbc connectors ??? applies to MSSQL too ? -class _SybNumeric(sqltypes.Numeric): - def bind_processor(self, dialect): - super_process = super(_SybNumeric, self).bind_processor(dialect) - - def process(value): - if self.asdecimal and \ - isinstance(value, decimal.Decimal) and \ - value.adjusted() < -6: - return processors.to_float(value) - elif super_process: - return super_process(value) - else: - return value - return process +from sqlalchemy.connectors.pyodbc import PyODBCConnector, PyODBCNumeric +from sqlalchemy import types as sqltypes, util + +class _SybNumeric_pyodbc(PyODBCNumeric): + pass class SybaseExecutionContext_pyodbc(SybaseExecutionContext): def set_ddl_autocommit(self, connection, value): @@ -64,8 +49,7 @@ class SybaseDialect_pyodbc(PyODBCConnector, SybaseDialect): execution_ctx_cls = SybaseExecutionContext_pyodbc colspecs = { - sqltypes.Numeric:_SybNumeric, - sqltypes.Float:sqltypes.Float, + sqltypes.Numeric:_SybNumeric_pyodbc, } dialect = SybaseDialect_pyodbc |
