Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed Oracle failure caused by None converted to '' in select_related…

… case
  • Loading branch information...
commit c159d9cec0baab7bbd04d5d51a92a51e354a722a 1 parent 2249bd2
Anssi Kääriäinen akaariai authored
Showing with 9 additions and 2 deletions.
  1. +9 −2 django/db/models/query.py
11 django/db/models/query.py
View
@@ -1418,8 +1418,15 @@ def get_cached_row(row, index_start, using, klass_info, offset=0):
fields = row[index_start : index_start + field_count]
# If all the select_related columns are None, then the related
# object must be non-existent - set the relation to None.
- # Otherwise, construct the related object.
- if fields == (None,) * field_count:
+ # Otherwise, construct the related object. Also, some backends treat ''
+ # and None equivalently for char fields, so we have to be prepared for
+ # '' values.
+ if connections[using].features.interprets_empty_strings_as_nulls:
+ vals = tuple([None if f == '' else f for f in fields])
+ else:
+ vals = fields
+
+ if vals == (None,) * field_count:
obj = None
else:
if field_names:
Please sign in to comment.
Something went wrong with that request. Please try again.