diff options
Diffstat (limited to 'lib/sqlalchemy')
21 files changed, 139 insertions, 88 deletions
diff --git a/lib/sqlalchemy/dialects/access/base.py b/lib/sqlalchemy/dialects/access/base.py index ed8297137..ee61190ff 100644 --- a/lib/sqlalchemy/dialects/access/base.py +++ b/lib/sqlalchemy/dialects/access/base.py @@ -18,7 +18,7 @@ from sqlalchemy.engine import default, base class AcNumeric(types.Numeric): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): return None def bind_processor(self, dialect): @@ -86,7 +86,7 @@ class AcUnicode(types.Unicode): def bind_processor(self, dialect): return None - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): return None class AcChar(types.CHAR): @@ -101,7 +101,7 @@ class AcBoolean(types.Boolean): def get_col_spec(self): return "YESNO" - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if value is None: return None diff --git a/lib/sqlalchemy/dialects/firebird/base.py b/lib/sqlalchemy/dialects/firebird/base.py index 921c70e98..21fec6b51 100644 --- a/lib/sqlalchemy/dialects/firebird/base.py +++ b/lib/sqlalchemy/dialects/firebird/base.py @@ -124,7 +124,7 @@ RESERVED_WORDS = set([ class _FBBoolean(sqltypes.Boolean): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if value is None: return None diff --git a/lib/sqlalchemy/dialects/informix/base.py b/lib/sqlalchemy/dialects/informix/base.py index 5760488ae..6565a812f 100644 --- a/lib/sqlalchemy/dialects/informix/base.py +++ b/lib/sqlalchemy/dialects/informix/base.py @@ -41,7 +41,7 @@ class InfoTime(sqltypes.Time): return value return process - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if isinstance(value, datetime.datetime): return value.time() @@ -51,7 +51,7 @@ class InfoTime(sqltypes.Time): class InfoBoolean(sqltypes.Boolean): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if value is None: return None diff --git a/lib/sqlalchemy/dialects/maxdb/base.py b/lib/sqlalchemy/dialects/maxdb/base.py index d1c0191ed..d5f00dbdd 100644 --- a/lib/sqlalchemy/dialects/maxdb/base.py +++ b/lib/sqlalchemy/dialects/maxdb/base.py @@ -83,7 +83,7 @@ class _StringType(sqltypes.String): return value return process - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): while True: if value is None: @@ -169,7 +169,7 @@ class MaxTimestamp(sqltypes.DateTime): dialect.datetimeformat,)) return process - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if value is None: return None @@ -209,7 +209,7 @@ class MaxDate(sqltypes.Date): dialect.datetimeformat,)) return process - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if value is None: return None @@ -243,7 +243,7 @@ class MaxTime(sqltypes.Time): dialect.datetimeformat,)) return process - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if value is None: return None @@ -270,7 +270,7 @@ class MaxBlob(sqltypes.Binary): return str(value) return process - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if value is None: return None diff --git a/lib/sqlalchemy/dialects/mssql/adodbapi.py b/lib/sqlalchemy/dialects/mssql/adodbapi.py index 10b8b33b3..6ca1879d6 100644 --- a/lib/sqlalchemy/dialects/mssql/adodbapi.py +++ b/lib/sqlalchemy/dialects/mssql/adodbapi.py @@ -3,7 +3,7 @@ from sqlalchemy.dialects.mssql.base import MSDateTime, MSDialect import sys class MSDateTime_adodbapi(MSDateTime): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): # adodbapi will return datetimes with empty time values as datetime.date() objects. # Promote them back to full datetime.datetime() diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py index 129125ca7..6c8937799 100644 --- a/lib/sqlalchemy/dialects/mssql/base.py +++ b/lib/sqlalchemy/dialects/mssql/base.py @@ -277,7 +277,7 @@ RESERVED_WORDS = set( class _MSNumeric(sqltypes.Numeric): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): if self.asdecimal: def process(value): if value is not None: @@ -350,7 +350,7 @@ class _MSDate(sqltypes.Date): return process _reg = re.compile(r"(\d+)-(\d+)-(\d+)") - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if isinstance(value, datetime.datetime): return value.date() @@ -377,7 +377,7 @@ class TIME(sqltypes.TIME): return process _reg = re.compile(r"(\d+):(\d+):(\d+)(?:\.(\d+))?") - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if isinstance(value, datetime.datetime): return value.time() @@ -599,7 +599,7 @@ class BIT(sqltypes.TypeEngine): __visit_name__ = 'BIT' class _MSBoolean(sqltypes.Boolean): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if value is None: return None diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py index 36a042589..a9acc2a01 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -546,7 +546,7 @@ class BIT(sqltypes.TypeEngine): """ self.length = length - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): """Convert a MySQL's 64 bit, variable length binary string to a long.""" def process(value): if value is not None: @@ -562,7 +562,7 @@ class _MSTime(sqltypes.Time): __visit_name__ = 'TIME' - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): time = datetime.time def process(value): # convert from a timedelta value @@ -1042,7 +1042,7 @@ class SET(_StringType): length = max([len(v) for v in strip_values] + [0]) super(SET, self).__init__(length=length, **kw) - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): # The good news: # No ',' quoting issues- commas aren't allowed in SET values @@ -1085,7 +1085,7 @@ class _MSBoolean(sqltypes.Boolean): __visit_name__ = 'BOOLEAN' - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if value is None: return None diff --git a/lib/sqlalchemy/dialects/mysql/mysqldb.py b/lib/sqlalchemy/dialects/mysql/mysqldb.py index 49fa044a3..846de6580 100644 --- a/lib/sqlalchemy/dialects/mysql/mysqldb.py +++ b/lib/sqlalchemy/dialects/mysql/mysqldb.py @@ -48,7 +48,7 @@ class MySQL_mysqldbCompiler(MySQLCompiler): class _DecimalType(_NumericType): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): if self.asdecimal: return def process(value): diff --git a/lib/sqlalchemy/dialects/mysql/oursql.py b/lib/sqlalchemy/dialects/mysql/oursql.py index 37537483d..5558c1a19 100644 --- a/lib/sqlalchemy/dialects/mysql/oursql.py +++ b/lib/sqlalchemy/dialects/mysql/oursql.py @@ -36,7 +36,7 @@ class _PlainQuery(unicode): class _oursqlNumeric(NUMERIC): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): if self.asdecimal: return def process(value): @@ -48,7 +48,7 @@ class _oursqlNumeric(NUMERIC): class _oursqlBIT(BIT): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): """oursql already converts mysql bits, so.""" return None diff --git a/lib/sqlalchemy/dialects/mysql/zxjdbc.py b/lib/sqlalchemy/dialects/mysql/zxjdbc.py index bf1267aed..dcb46789a 100644 --- a/lib/sqlalchemy/dialects/mysql/zxjdbc.py +++ b/lib/sqlalchemy/dialects/mysql/zxjdbc.py @@ -23,7 +23,7 @@ from sqlalchemy.connectors.zxJDBC import ZxJDBCConnector from sqlalchemy.dialects.mysql.base import BIT, MySQLDialect, MySQLExecutionContext class _ZxJDBCBit(BIT): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): """Converts boolean or byte arrays from MySQL Connector/J to longs.""" def process(value): if value is None: diff --git a/lib/sqlalchemy/dialects/oracle/base.py b/lib/sqlalchemy/dialects/oracle/base.py index 22ba2ce93..d13e37d60 100644 --- a/lib/sqlalchemy/dialects/oracle/base.py +++ b/lib/sqlalchemy/dialects/oracle/base.py @@ -159,7 +159,7 @@ class _OracleBoolean(sqltypes.Boolean): def get_dbapi_type(self, dbapi): return dbapi.NUMBER - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if value is None: return None diff --git a/lib/sqlalchemy/dialects/oracle/cx_oracle.py b/lib/sqlalchemy/dialects/oracle/cx_oracle.py index eb5f2cb43..2db37a4fc 100644 --- a/lib/sqlalchemy/dialects/oracle/cx_oracle.py +++ b/lib/sqlalchemy/dialects/oracle/cx_oracle.py @@ -84,7 +84,7 @@ class _OracleDate(sqltypes.Date): def bind_processor(self, dialect): return None - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if not isinstance(value, datetime): return value @@ -93,7 +93,7 @@ class _OracleDate(sqltypes.Date): return process class _OracleDateTime(sqltypes.DateTime): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if value is None or isinstance(value, datetime): return value @@ -110,7 +110,7 @@ class _OracleDateTime(sqltypes.DateTime): # only if cx_oracle contains TIMESTAMP class _OracleTimestamp(sqltypes.TIMESTAMP): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if value is None or isinstance(value, datetime): return value @@ -121,13 +121,13 @@ class _OracleTimestamp(sqltypes.TIMESTAMP): return process class _LOBMixin(object): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): if not dialect.auto_convert_lobs: # return the cx_oracle.LOB directly. # don't even call super.result_processor here. return None - super_process = super(_LOBMixin, self).result_processor(dialect) + super_process = super(_LOBMixin, self).result_processor(dialect, coltype) lob = dialect.dbapi.LOB if super_process: def process(value): @@ -148,11 +148,11 @@ class _OracleChar(sqltypes.CHAR): return dbapi.FIXED_CHAR class _OracleNVarChar(sqltypes.NVARCHAR): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): if dialect._cx_oracle_native_nvarchar: return None else: - return sqltypes.NVARCHAR.result_processor(self, dialect) + return sqltypes.NVARCHAR.result_processor(self, dialect, coltype) class _OracleText(_LOBMixin, sqltypes.Text): def get_dbapi_type(self, dbapi): @@ -163,7 +163,7 @@ class _OracleUnicodeText(_LOBMixin, sqltypes.UnicodeText): return dbapi.NCLOB class _OracleInteger(sqltypes.Integer): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def to_int(val): if val is not None: val = int(val) @@ -259,11 +259,14 @@ class Oracle_cx_oracleExecutionContext(OracleExecutionContext): for bind, name in self.compiled.bind_names.iteritems(): if name in self.out_parameters: type = bind.type - result_processor = type.dialect_impl(self.dialect).\ - result_processor(self.dialect) + impl_type = type.dialect_impl(self.dialect) + dbapi_type = impl_type.get_dbapi_type(self.dialect.dbapi) + result_processor = impl_type.\ + result_processor(self.dialect, + dbapi_type) if result_processor is not None: out_parameters[name] = \ - result_processor(self.out_parameters[name].getvalue()) + result_processor(self.out_parameters[name].getvalue(), dbapi_type) else: out_parameters[name] = self.out_parameters[name].getvalue() else: diff --git a/lib/sqlalchemy/dialects/oracle/zxjdbc.py b/lib/sqlalchemy/dialects/oracle/zxjdbc.py index 6edef301c..42c43d369 100644 --- a/lib/sqlalchemy/dialects/oracle/zxjdbc.py +++ b/lib/sqlalchemy/dialects/oracle/zxjdbc.py @@ -20,7 +20,7 @@ SQLException = zxJDBC = None class _ZxJDBCDate(sqltypes.Date): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if value is None: return None @@ -31,7 +31,7 @@ class _ZxJDBCDate(sqltypes.Date): class _ZxJDBCNumeric(sqltypes.Numeric): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): if self.asdecimal: def process(value): if isinstance(value, decimal.Decimal): diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py index 97108b3cb..9c6de3623 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -174,8 +174,8 @@ class ARRAY(sqltypes.MutableType, sqltypes.Concatenable, sqltypes.TypeEngine): return [convert_item(item) for item in value] return process - def result_processor(self, dialect): - item_proc = self.item_type.result_processor(dialect) + def result_processor(self, dialect, coltype): + item_proc = self.item_type.result_processor(dialect, coltype) def process(value): if value is None: return value diff --git a/lib/sqlalchemy/dialects/postgresql/pg8000.py b/lib/sqlalchemy/dialects/postgresql/pg8000.py index 17fe86be6..e90bebb6b 100644 --- a/lib/sqlalchemy/dialects/postgresql/pg8000.py +++ b/lib/sqlalchemy/dialects/postgresql/pg8000.py @@ -21,25 +21,47 @@ Passing data from/to the Interval type is not supported as of yet. """ from sqlalchemy.engine import default import decimal -from sqlalchemy import util +from sqlalchemy import util, exc from sqlalchemy import types as sqltypes -from sqlalchemy.dialects.postgresql.base import PGDialect, PGCompiler, PGIdentifierPreparer, PGExecutionContext +from sqlalchemy.dialects.postgresql.base import PGDialect, \ + PGCompiler, PGIdentifierPreparer, PGExecutionContext class _PGNumeric(sqltypes.Numeric): def bind_processor(self, dialect): - return None - - def result_processor(self, dialect): + def process(value): + if value is not None: + return float(value) + else: + return value + return process + + def result_processor(self, dialect, coltype): if self.asdecimal: - return None + if coltype in (700, 701): + def process(value): + if value is not None: + return decimal.Decimal(str(value)) + else: + return value + return process + elif coltype == 1700: + # pg8000 returns Decimal natively for 1700 + return None + else: + raise exc.InvalidRequestError("Unknown PG numeric type: %d" % coltype) else: - def process(value): - if isinstance(value, decimal.Decimal): - return float(value) - else: - return value - return process - + if coltype in (700, 701): + # pg8000 returns float natively for 701 + return None + elif coltype == 1700: + def process(value): + if value is not None: + return float(value) + else: + return value + return process + else: + raise exc.InvalidRequestError("Unknown PG numeric type: %d" % coltype) class PostgreSQL_pg8000ExecutionContext(PGExecutionContext): pass @@ -79,7 +101,6 @@ class PostgreSQL_pg8000(PGDialect): PGDialect.colspecs, { sqltypes.Numeric : _PGNumeric, - sqltypes.Float: sqltypes.Float, # prevents _PGNumeric from being used } ) diff --git a/lib/sqlalchemy/dialects/postgresql/psycopg2.py b/lib/sqlalchemy/dialects/postgresql/psycopg2.py index aa4e07bb3..a46fdbddb 100644 --- a/lib/sqlalchemy/dialects/postgresql/psycopg2.py +++ b/lib/sqlalchemy/dialects/postgresql/psycopg2.py @@ -51,17 +51,33 @@ class _PGNumeric(sqltypes.Numeric): def bind_processor(self, dialect): return None - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): if self.asdecimal: - return None + if coltype in (700, 701): + def process(value): + if value is not None: + return decimal.Decimal(str(value)) + else: + return value + return process + elif coltype == 1700: + # pg8000 returns Decimal natively for 1700 + return None + else: + raise exc.InvalidRequestError("Unknown PG numeric type: %d" % coltype) else: - def process(value): - if isinstance(value, decimal.Decimal): - return float(value) - else: - return value - return process - + if coltype in (700, 701): + # pg8000 returns float natively for 701 + return None + elif coltype == 1700: + def process(value): + if value is not None: + return float(value) + else: + return value + return process + else: + raise exc.InvalidRequestError("Unknown PG numeric type: %d" % coltype) class _PGEnum(ENUM): def __init__(self, *arg, **kw): @@ -139,7 +155,6 @@ class PostgreSQL_psycopg2(PGDialect): PGDialect.colspecs, { sqltypes.Numeric : _PGNumeric, - sqltypes.Float: sqltypes.Float, # prevents _PGNumeric from being used ENUM : _PGEnum, # needs force_unicode sqltypes.Enum : _PGEnum, # needs force_unicode ARRAY : _PGArray, # needs force_unicode diff --git a/lib/sqlalchemy/dialects/postgresql/pypostgresql.py b/lib/sqlalchemy/dialects/postgresql/pypostgresql.py index 517d41aaf..2c33b3eb5 100644 --- a/lib/sqlalchemy/dialects/postgresql/pypostgresql.py +++ b/lib/sqlalchemy/dialects/postgresql/pypostgresql.py @@ -17,7 +17,7 @@ class PGNumeric(sqltypes.Numeric): def bind_processor(self, dialect): return None - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): if self.asdecimal: return None else: diff --git a/lib/sqlalchemy/dialects/sqlite/base.py b/lib/sqlalchemy/dialects/sqlite/base.py index 47c797c21..33feaeaae 100644 --- a/lib/sqlalchemy/dialects/sqlite/base.py +++ b/lib/sqlalchemy/dialects/sqlite/base.py @@ -96,7 +96,7 @@ class _SLDateTime(_DateTimeMixin, sqltypes.DateTime): ) _reg = re.compile(r"(\d+)-(\d+)-(\d+)(?: (\d+):(\d+):(\d+)(?:\.(\d+))?)?") - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): return self._result_processor(datetime.datetime, self._reg) class _SLDate(_DateTimeMixin, sqltypes.Date): @@ -107,7 +107,7 @@ class _SLDate(_DateTimeMixin, sqltypes.Date): ) _reg = re.compile(r"(\d+)-(\d+)-(\d+)") - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): return self._result_processor(datetime.date, self._reg) class _SLTime(_DateTimeMixin, sqltypes.Time): @@ -126,7 +126,7 @@ class _SLTime(_DateTimeMixin, sqltypes.Time): ) _reg = re.compile(r"(\d+):(\d+):(\d+)(?:\.(\d+))?") - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): return self._result_processor(datetime.time, self._reg) @@ -138,7 +138,7 @@ class _SLBoolean(sqltypes.Boolean): return value and 1 or 0 return process - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if value is None: return None diff --git a/lib/sqlalchemy/dialects/sybase/base.py b/lib/sqlalchemy/dialects/sybase/base.py index 6fc42c312..cfdbd321a 100644 --- a/lib/sqlalchemy/dialects/sybase/base.py +++ b/lib/sqlalchemy/dialects/sybase/base.py @@ -113,7 +113,7 @@ class SybaseUniqueIdentifier(sqltypes.TypeEngine): __visit_name__ = "UNIQUEIDENTIFIER" class SybaseBoolean(sqltypes.Boolean): - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): if value is None: return None diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py index b65843f48..3ea52cd72 100644 --- a/lib/sqlalchemy/engine/base.py +++ b/lib/sqlalchemy/engine/base.py @@ -1757,7 +1757,6 @@ class ResultProxy(object): typemap = self.dialect.dbapi_type_map for i, (colname, coltype) in enumerate(m[0:2] for m in metadata): - if self.dialect.description_encoding: colname = colname.decode(self.dialect.description_encoding) @@ -1779,7 +1778,7 @@ class ResultProxy(object): name, obj, type_ = (colname, None, typemap.get(coltype, types.NULLTYPE)) processor = type_.dialect_impl(self.dialect).\ - result_processor(self.dialect) + result_processor(self.dialect, coltype) if processor: def make_colfunc(processor, index): diff --git a/lib/sqlalchemy/types.py b/lib/sqlalchemy/types.py index a215f31ff..3fa18b2c2 100644 --- a/lib/sqlalchemy/types.py +++ b/lib/sqlalchemy/types.py @@ -47,12 +47,22 @@ class AbstractType(Visitable): return value def bind_processor(self, dialect): - """Defines a bind parameter processing function.""" + """Defines a bind parameter processing function. + + :param dialect: Dialect instance in use. + + """ return None - def result_processor(self, dialect): - """Defines a result-column processing function.""" + def result_processor(self, dialect, coltype): + """Defines a result-column processing function. + + :param dialect: Dialect instance in use. + + :param coltype: DBAPI coltype argument received in cursor.description. + + """ return None @@ -126,7 +136,7 @@ class TypeEngine(AbstractType): """ return None - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): """Return a conversion function for processing result row values. Returns a callable which will receive a result row column @@ -162,7 +172,7 @@ class UserDefinedType(TypeEngine): return value return process - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): def process(value): return value return process @@ -300,10 +310,10 @@ class TypeDecorator(AbstractType): else: return self.impl.bind_processor(dialect) - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): if self.__class__.process_result_value.func_code is not TypeDecorator.process_result_value.func_code: process_value = self.process_result_value - impl_processor = self.impl.result_processor(dialect) + impl_processor = self.impl.result_processor(dialect, coltype) if impl_processor: def process(value): return process_value(impl_processor(value), dialect) @@ -312,7 +322,7 @@ class TypeDecorator(AbstractType): return process_value(value, dialect) return process else: - return self.impl.result_processor(dialect) + return self.impl.result_processor(dialect, coltype) def copy(self): instance = self.__class__.__new__(self.__class__) @@ -511,7 +521,7 @@ class String(Concatenable, TypeEngine): else: return None - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): if (not dialect.returns_unicode_strings or self.convert_unicode == 'force') \ and (self.convert_unicode or dialect.convert_unicode): def process(value): @@ -666,7 +676,10 @@ class Numeric(TypeEngine): self.asdecimal = asdecimal def adapt(self, impltype): - return impltype(precision=self.precision, scale=self.scale, asdecimal=self.asdecimal) + return impltype( + precision=self.precision, + scale=self.scale, + asdecimal=self.asdecimal) def get_dbapi_type(self, dbapi): return dbapi.NUMBER @@ -679,7 +692,7 @@ class Numeric(TypeEngine): return value return process - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): if self.asdecimal: def process(value): if value is not None: @@ -790,7 +803,7 @@ class Binary(TypeEngine): return None return process - def result_processor(self, dialect): + def result_processor(self, dialect, coltype): if util.jython: def process(value): if value is not None: @@ -1041,8 +1054,8 @@ class PickleType(MutableType, TypeDecorator): return value return process - def result_processor(self, dialect): - impl_processor = self.impl.result_processor(dialect) + def result_processor(self, dialect, coltype): + impl_processor = self.impl.result_processor(dialect, coltype) loads = self.pickler.loads if impl_processor: def process(value): @@ -1111,8 +1124,8 @@ class Interval(TypeDecorator): return value return process - def result_processor(self, dialect): - impl_processor = self.impl.result_processor(dialect) + def result_processor(self, dialect, coltype): + impl_processor = self.impl.result_processor(dialect, coltype) epoch = self.epoch if impl_processor: def process(value): |
