From 6566427fd0587fc45bdc4c0eeb651ce43d36d53d Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 15 Jul 2007 04:11:51 +0000 Subject: [PATCH] - converts cx_oracle datetime objects to Python datetime.datetime when Python 2.3 used [ticket:542] --- CHANGES | 2 ++ lib/sqlalchemy/databases/oracle.py | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/CHANGES b/CHANGES index 81945bffec..20445557f6 100644 --- a/CHANGES +++ b/CHANGES @@ -106,6 +106,8 @@ so that the LOB is read() automatically, if no typemap was present (i.e., if a textual execute() was issued). - mod operator '%' produces MOD [ticket:624] + - converts cx_oracle datetime objects to Python datetime.datetime when + Python 2.3 used [ticket:542] - postgres - fixed escaping of the modulo operator [ticket:624] - added support for reflection of domains [ticket:570] diff --git a/lib/sqlalchemy/databases/oracle.py b/lib/sqlalchemy/databases/oracle.py index e7f8f483ae..35b72af6c0 100644 --- a/lib/sqlalchemy/databases/oracle.py +++ b/lib/sqlalchemy/databases/oracle.py @@ -43,6 +43,14 @@ class OracleDate(sqltypes.Date): class OracleDateTime(sqltypes.DateTime): def get_col_spec(self): return "DATE" + + def convert_result_value(self, value, dialect): + if value is None or isinstance(value,datetime.datetime): + return value + else: + # convert cx_oracle datetime object returned pre-python 2.4 + return datetime.datetime(value.year,value.month, + value.day,value.hour, value.minute, value.second) # Note: # Oracle DATE == DATETIME @@ -57,6 +65,15 @@ class OracleTimestamp(sqltypes.TIMESTAMP): def get_dbapi_type(self, dialect): return dialect.TIMESTAMP + def convert_result_value(self, value, dialect): + if value is None or isinstance(value,datetime.datetime): + return value + else: + # convert cx_oracle datetime object returned pre-python 2.4 + return datetime.datetime(value.year,value.month, + value.day,value.hour, value.minute, value.second) + + class OracleString(sqltypes.String): def get_col_spec(self): return "VARCHAR(%(length)s)" % {'length' : self.length} -- 2.47.2