1
0
mirror of https://github.com/django/django.git synced 2024-12-26 02:56:25 +00:00

Fixed #20386 - Introspection problem on Oracle

Made introspection always return a unicode as column name on Oracle.
Thanks aaugustin for review and suggestion to use force_text().
This commit is contained in:
Shai Berger 2013-05-16 18:30:52 +03:00
parent 340115200f
commit 215647c0f7

View File

@ -1,4 +1,5 @@
from django.db.backends import BaseDatabaseIntrospection, FieldInfo from django.db.backends import BaseDatabaseIntrospection, FieldInfo
from django.utils.encoding import force_text
import cx_Oracle import cx_Oracle
import re import re
@ -48,7 +49,8 @@ class DatabaseIntrospection(BaseDatabaseIntrospection):
cursor.execute("SELECT * FROM %s WHERE ROWNUM < 2" % self.connection.ops.quote_name(table_name)) cursor.execute("SELECT * FROM %s WHERE ROWNUM < 2" % self.connection.ops.quote_name(table_name))
description = [] description = []
for desc in cursor.description: for desc in cursor.description:
description.append(FieldInfo(*((desc[0].lower(),) + desc[1:]))) name = force_text(desc[0]) # cx_Oracle always returns a 'str' on both Python 2 and 3
description.append(FieldInfo(*(name.lower(),) + desc[1:]))
return description return description
def table_name_converter(self, name): def table_name_converter(self, name):