From: Mike Bayer Date: Thu, 26 Jul 2007 22:34:57 +0000 (+0000) Subject: - all oracle testtypes pass in this rev X-Git-Tag: rel_0_4_6~6 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=097bd23abdb9a10a350bb326ffa27c5eb617eb11;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - all oracle testtypes pass in this rev --- diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index 9d663f6ee4..d3aa2e268f 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -85,11 +85,14 @@ class OracleText(sqltypes.TEXT): def get_col_spec(self): return "CLOB" - # def convert_result_value(self, value, dialect): - # if value is None: - # return None - # else: - # return super(OracleText, self).convert_result_value(value.read(), dialect) + def convert_result_value(self, value, dialect): + if value is None: + return None + elif hasattr(value, 'read'): + # cx_oracle doesnt seem to be consistent with CLOB returning LOB or str + return super(OracleText, self).convert_result_value(value.read(), dialect) + else: + return super(OracleText, self).convert_result_value(value, dialect) class OracleRaw(sqltypes.Binary): @@ -221,16 +224,16 @@ class OracleDialect(ansisql.ANSIDialect): self.ORACLE_BINARY_TYPES = [] def dbapi_type_map(self): - if self.dbapi is None: + if self.dbapi is None or not self.auto_convert_lobs: return {} else: return { - dbapi.NUMBER: OracleInteger(), - dbapi.CLOB: OracleText(), - dbapi.BLOB: OracleBinary(), - dbapi.STRING: OracleString(), - dbapi.TIMESTAMP: OracleTimestamp(), - dbapi.BINARY: OracleRaw(), + self.dbapi.NUMBER: OracleInteger(), + self.dbapi.CLOB: OracleText(), + self.dbapi.BLOB: OracleBinary(), + self.dbapi.STRING: OracleString(), + self.dbapi.TIMESTAMP: OracleTimestamp(), + self.dbapi.BINARY: OracleRaw(), datetime.datetime: OracleDate() } @@ -261,12 +264,6 @@ class OracleDialect(ansisql.ANSIDialect): util.coerce_kw_type(opts, 'use_ansi', bool) return ([], opts) - def dbapi_type_map(self): - if self.auto_convert_lobs: - return super(OracleDialect, self).dbapi_type_map() - else: - return {} - def type_descriptor(self, typeobj): return sqltypes.adapt_type(typeobj, colspecs)