]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- converts cx_oracle datetime objects to Python datetime.datetime when
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 15 Jul 2007 04:11:51 +0000 (04:11 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 15 Jul 2007 04:11:51 +0000 (04:11 +0000)
Python 2.3 used [ticket:542]

CHANGES
lib/sqlalchemy/databases/oracle.py

diff --git a/CHANGES b/CHANGES
index 81945bffec44c4877169f40bfd9538ed3846423a..20445557f672a8af11de78706e8b73bf0aac425d 100644 (file)
--- a/CHANGES
+++ b/CHANGES
       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]
index e7f8f483ae1bc6b85e54a614e115b9d59607cb22..35b72af6c0ac6754efbbafd8126726cb84f57623 100644 (file)
@@ -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}