summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine/default.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-03-11 22:12:49 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2010-03-11 22:12:49 -0500
commit6e14027620b5e294a78caf91a3da69fe1f1dd458 (patch)
tree1985c1dd9a892ce7c44b13ae0f1458880cfad216 /lib/sqlalchemy/engine/default.py
parente66ca9edd525feb43177014d7736a79440262f3a (diff)
downloadsqlalchemy-6e14027620b5e294a78caf91a3da69fe1f1dd458.tar.gz
refine that a bit
Diffstat (limited to 'lib/sqlalchemy/engine/default.py')
-rw-r--r--lib/sqlalchemy/engine/default.py35
1 files changed, 15 insertions, 20 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py
index 87616ed4c..077627949 100644
--- a/lib/sqlalchemy/engine/default.py
+++ b/lib/sqlalchemy/engine/default.py
@@ -138,29 +138,24 @@ class DefaultDialect(base.Dialect):
def _check_unicode_returns(self, connection):
cursor = connection.connection.cursor()
- cursor.execute(
- str(
- expression.select(
- [expression.cast(
- expression.literal_column("'test unicode returns'"),sqltypes.VARCHAR(60))
- ]).compile(dialect=self)
+ def check_unicode(type_):
+ cursor.execute(
+ str(
+ expression.select(
+ [expression.cast(
+ expression.literal_column("'test unicode returns'"), type_)
+ ]).compile(dialect=self)
+ )
)
- )
- row = cursor.fetchone()
- unicode_for_varchar = isinstance(row[0], unicode)
-
- cursor.execute(
- str(
- expression.select(
- [expression.cast(
- expression.literal_column("'test unicode returns'"),sqltypes.Unicode(60))
- ]).compile(dialect=self)
- )
- )
+ row = cursor.fetchone()
+ return isinstance(row[0], unicode)
+
+ # detect plain VARCHAR
+ unicode_for_varchar = check_unicode(sqltypes.VARCHAR(60))
- row = cursor.fetchone()
- unicode_for_unicode = isinstance(row[0], unicode)
+ # 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: