mirror of https://github.com/django/django.git
Fixed #6254: Made fetchone() in the oracle backend correctly convert
strings to unicode objects. git-svn-id: http://code.djangoproject.com/svn/django/trunk@6995 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
4ab27ab119
commit
6929c0d4d1
|
@ -516,7 +516,10 @@ class FormatStylePlaceholderCursor(Database.Cursor):
|
|||
return Database.Cursor.executemany(self, query, new_param_list)
|
||||
|
||||
def fetchone(self):
|
||||
return to_unicode(Database.Cursor.fetchone(self))
|
||||
row = Database.Cursor.fetchone(self)
|
||||
if row is None:
|
||||
return row
|
||||
return tuple([to_unicode(e) for e in row])
|
||||
|
||||
def fetchmany(self, size=None):
|
||||
if size is None:
|
||||
|
|
|
@ -8,6 +8,13 @@ class Square(models.Model):
|
|||
def __unicode__(self):
|
||||
return "%s ** 2 == %s" % (self.root, self.square)
|
||||
|
||||
class Person(models.Model):
|
||||
first_name = models.CharField(max_length=20)
|
||||
last_name = models.CharField(max_length=20)
|
||||
|
||||
def __unicode__(self):
|
||||
return u'%s %s' % (self.first_name, self.last_name)
|
||||
|
||||
if connection.features.uses_case_insensitive_names:
|
||||
t_convert = lambda x: x.upper()
|
||||
else:
|
||||
|
@ -32,4 +39,25 @@ __test__ = {'API_TESTS': """
|
|||
>>> Square.objects.count()
|
||||
11
|
||||
|
||||
#6254: fetchone, fetchmany, fetchall return strings as unicode objects
|
||||
>>> Person(first_name="John", last_name="Doe").save()
|
||||
>>> Person(first_name="Jane", last_name="Doe").save()
|
||||
>>> Person(first_name="Mary", last_name="Agnelline").save()
|
||||
>>> Person(first_name="Peter", last_name="Parker").save()
|
||||
>>> Person(first_name="Clark", last_name="Kent").save()
|
||||
>>> opts2 = Person._meta
|
||||
>>> f3, f4 = opts2.get_field('first_name'), opts2.get_field('last_name')
|
||||
>>> query2 = ('SELECT %s, %s FROM %s ORDER BY %s'
|
||||
... % (qn(f3.column), qn(f4.column), t_convert(opts2.db_table),
|
||||
... qn(f3.column)))
|
||||
>>> cursor.execute(query2) and None or None
|
||||
>>> cursor.fetchone()
|
||||
(u'Clark', u'Kent')
|
||||
|
||||
>>> list(cursor.fetchmany(2))
|
||||
[(u'Jane', u'Doe'), (u'John', u'Doe')]
|
||||
|
||||
>>> list(cursor.fetchall())
|
||||
[(u'Mary', u'Agnelline'), (u'Peter', u'Parker')]
|
||||
|
||||
"""}
|
||||
|
|
Loading…
Reference in New Issue