From: Mike Bayer Date: Sun, 6 Dec 2009 01:59:14 +0000 (+0000) Subject: remove unneeded _OracleDateTime/_OracleTimestamp cx_oracle types, streamline _OracleD... X-Git-Tag: rel_0_6beta1~146 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4ca12d76bd8580d56c4ec1f7ed95c0e37a4c281a;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git remove unneeded _OracleDateTime/_OracleTimestamp cx_oracle types, streamline _OracleDate, [ticket:1600] --- diff --git a/lib/sqlalchemy/dialects/oracle/cx_oracle.py b/lib/sqlalchemy/dialects/oracle/cx_oracle.py index 47f66c0705..8d69194e63 100644 --- a/lib/sqlalchemy/dialects/oracle/cx_oracle.py +++ b/lib/sqlalchemy/dialects/oracle/cx_oracle.py @@ -86,38 +86,10 @@ class _OracleDate(sqltypes.Date): def result_processor(self, dialect, coltype): def process(value): - if not isinstance(value, datetime): - return value - else: + if value is not None: return value.date() - return process - -class _OracleDateTime(sqltypes.DateTime): - def result_processor(self, dialect, coltype): - def process(value): - if value is None or isinstance(value, datetime): - return value else: - # convert cx_oracle datetime object returned pre-python 2.4 - return datetime(value.year, value.month, - value.day,value.hour, value.minute, value.second) - return process - -# Note: -# Oracle DATE == DATETIME -# Oracle does not allow milliseconds in DATE -# Oracle does not support TIME columns - -# only if cx_oracle contains TIMESTAMP -class _OracleTimestamp(sqltypes.TIMESTAMP): - def result_processor(self, dialect, coltype): - def process(value): - if value is None or isinstance(value, datetime): return value - else: - # convert cx_oracle datetime object returned pre-python 2.4 - return datetime(value.year, value.month, - value.day,value.hour, value.minute, value.second) return process class _LOBMixin(object): @@ -196,13 +168,11 @@ class _OracleRaw(oracle.RAW): colspecs = { - sqltypes.DateTime : _OracleDateTime, sqltypes.Date : _OracleDate, sqltypes.Binary : _OracleBinary, sqltypes.Boolean : oracle._OracleBoolean, sqltypes.Text : _OracleText, sqltypes.UnicodeText : _OracleUnicodeText, - sqltypes.TIMESTAMP : _OracleTimestamp, sqltypes.CHAR : _OracleChar, sqltypes.Integer : _OracleInteger, # this is only needed for OUT parameters. # it would be nice if we could not use it otherwise. diff --git a/test/dialect/test_oracle.py b/test/dialect/test_oracle.py index 9715821786..62721c3995 100644 --- a/test/dialect/test_oracle.py +++ b/test/dialect/test_oracle.py @@ -380,8 +380,7 @@ class TypesTest(TestBase, AssertsCompiledSQL): dialect = cx_oracle.dialect() for start, test in [ - (DateTime(), cx_oracle._OracleDateTime), - (TIMESTAMP(), cx_oracle._OracleTimestamp), + (Date(), cx_oracle._OracleDate), (oracle.OracleRaw(), cx_oracle._OracleRaw), (String(), String), (VARCHAR(), VARCHAR),