summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-03-12 16:19:41 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2010-03-12 16:19:41 -0500
commit6efad7dfc6da0d54bb89809b12bacdf62d0169fd (patch)
tree71350bf1eed227f9ebd20ed33eab3387acc909c6 /lib
parentb9d275fdc134376b3e81066870b92a8c84c0705c (diff)
downloadsqlalchemy-6efad7dfc6da0d54bb89809b12bacdf62d0169fd.tar.gz
oursql doesn't like the cursor being reused without fetch being finished
Diffstat (limited to 'lib')
-rw-r--r--lib/sqlalchemy/engine/default.py28
1 files changed, 15 insertions, 13 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py
index cfab01dc4..8222c93cd 100644
--- a/lib/sqlalchemy/engine/default.py
+++ b/lib/sqlalchemy/engine/default.py
@@ -137,7 +137,6 @@ class DefaultDialect(base.Dialect):
self.returns_unicode_strings = self._check_unicode_returns(connection)
def _check_unicode_returns(self, connection):
- cursor = connection.connection.cursor()
# Py2K
if self.supports_unicode_statements:
cast_to = unicode
@@ -147,24 +146,27 @@ class DefaultDialect(base.Dialect):
# Py3K
#cast_to = str
def check_unicode(type_):
- cursor.execute(
- cast_to(
- expression.select(
- [expression.cast(
- expression.literal_column("'test unicode returns'"), type_)
- ]).compile(dialect=self)
+ cursor = connection.connection.cursor()
+ try:
+ cursor.execute(
+ cast_to(
+ expression.select(
+ [expression.cast(
+ expression.literal_column("'test unicode returns'"), type_)
+ ]).compile(dialect=self)
+ )
)
- )
-
- row = cursor.fetchone()
- return isinstance(row[0], unicode)
-
+ row = cursor.fetchone()
+
+ return isinstance(row[0], unicode)
+ finally:
+ cursor.close()
+
# detect plain VARCHAR
unicode_for_varchar = check_unicode(sqltypes.VARCHAR(60))
# detect if there's an NVARCHAR type with different behavior available
unicode_for_unicode = check_unicode(sqltypes.Unicode(60))
- cursor.close()
if unicode_for_unicode and not unicode_for_varchar:
return "conditional"