Fixed #13396 -- Modified the SQLite introspection code to avoid a problem with unconsumed cursors on PyPy. Thanks to Alex Gaynor for the report and fix.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@13016 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
b5dc7945bd
commit
5866875547
|
@ -66,7 +66,7 @@ class DatabaseIntrospection(BaseDatabaseIntrospection):
|
||||||
relations = {}
|
relations = {}
|
||||||
|
|
||||||
# Schema for this table
|
# Schema for this table
|
||||||
cursor.execute("SELECT sql FROM sqlite_master WHERE tbl_name = %s", [table_name])
|
cursor.execute("SELECT sql FROM sqlite_master WHERE tbl_name = %s AND type = %s", [table_name, "table"])
|
||||||
results = cursor.fetchone()[0].strip()
|
results = cursor.fetchone()[0].strip()
|
||||||
results = results[results.index('(')+1:results.rindex(')')]
|
results = results[results.index('(')+1:results.rindex(')')]
|
||||||
|
|
||||||
|
|
|
@ -5,11 +5,6 @@ from django.utils import functional
|
||||||
|
|
||||||
from models import Reporter, Article
|
from models import Reporter, Article
|
||||||
|
|
||||||
try:
|
|
||||||
set
|
|
||||||
except NameError:
|
|
||||||
from sets import Set as set # Python 2.3 fallback
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# The introspection module is optional, so methods tested here might raise
|
# The introspection module is optional, so methods tested here might raise
|
||||||
# NotImplementedError. This is perfectly acceptable behavior for the backend
|
# NotImplementedError. This is perfectly acceptable behavior for the backend
|
||||||
|
@ -76,8 +71,10 @@ class IntrospectionTests(TestCase):
|
||||||
def test_get_table_description_types(self):
|
def test_get_table_description_types(self):
|
||||||
cursor = connection.cursor()
|
cursor = connection.cursor()
|
||||||
desc = connection.introspection.get_table_description(cursor, Reporter._meta.db_table)
|
desc = connection.introspection.get_table_description(cursor, Reporter._meta.db_table)
|
||||||
self.assertEqual([datatype(r[1], r) for r in desc],
|
self.assertEqual(
|
||||||
['IntegerField', 'CharField', 'CharField', 'CharField', 'BigIntegerField'])
|
[datatype(r[1], r) for r in desc],
|
||||||
|
['IntegerField', 'CharField', 'CharField', 'CharField', 'BigIntegerField']
|
||||||
|
)
|
||||||
|
|
||||||
# Regression test for #9991 - 'real' types in postgres
|
# Regression test for #9991 - 'real' types in postgres
|
||||||
if settings.DATABASES[DEFAULT_DB_ALIAS]['ENGINE'].startswith('django.db.backends.postgresql'):
|
if settings.DATABASES[DEFAULT_DB_ALIAS]['ENGINE'].startswith('django.db.backends.postgresql'):
|
||||||
|
|
Loading…
Reference in New Issue