Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Simplified time zone support in the Oracle backend. Avoided outputtyp…

…ehandler which doesn't exist in cx_Oracle < 4.4.1.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@17171 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 2693aa890ea6c8273dcdaeab6101203f37ffb1f3 1 parent 5f9dbef
@aaugustin aaugustin authored
Showing with 6 additions and 18 deletions.
  1. +6 −18 django/db/backends/oracle/base.py
View
24 django/db/backends/oracle/base.py
@@ -485,24 +485,6 @@ def _cursor(self):
" NLS_TERRITORY = 'AMERICA'"
+ (" TIME_ZONE = 'UTC'" if settings.USE_TZ else ''))
- def datetime_converter(dt):
- # Confirm that dt is naive before overwriting its tzinfo.
- if dt is not None and is_naive(dt):
- dt = dt.replace(tzinfo=utc)
- return dt
-
- def output_type_handler(cursor, name, default_type,
- size, precision, scale):
- # datetimes are returned as TIMESTAMP, except the results
- # of "dates" queries, which are returned as DATETIME.
- if settings.USE_TZ and default_type in (Database.TIMESTAMP,
- Database.DATETIME):
- return cursor.var(default_type,
- arraysize=cursor.arraysize,
- outconverter=datetime_converter)
-
- self.connection.outputtypehandler = output_type_handler
-
if 'operators' not in self.__dict__:
# Ticket #14149: Check whether our LIKE implementation will
# work for this connection or we need to fall back on LIKEC.
@@ -794,6 +776,12 @@ def _rowfactory(row, cursor):
value = decimal.Decimal(value)
else:
value = int(value)
+ # datetimes are returned as TIMESTAMP, except the results
+ # of "dates" queries, which are returned as DATETIME.
+ elif desc[1] in (Database.TIMESTAMP, Database.DATETIME):
+ # Confirm that dt is naive before overwriting its tzinfo.
+ if settings.USE_TZ and value is not None and is_naive(value):
+ value = value.replace(tzinfo=utc)
elif desc[1] in (Database.STRING, Database.FIXED_CHAR,
Database.LONG_STRING):
value = to_unicode(value)
Please sign in to comment.
Something went wrong with that request. Please try again.