diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-03-11 22:12:49 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-03-11 22:12:49 -0500 |
commit | 6e14027620b5e294a78caf91a3da69fe1f1dd458 (patch) | |
tree | 1985c1dd9a892ce7c44b13ae0f1458880cfad216 /lib/sqlalchemy/engine/default.py | |
parent | e66ca9edd525feb43177014d7736a79440262f3a (diff) | |
download | sqlalchemy-6e14027620b5e294a78caf91a3da69fe1f1dd458.tar.gz |
refine that a bit
Diffstat (limited to 'lib/sqlalchemy/engine/default.py')
-rw-r--r-- | lib/sqlalchemy/engine/default.py | 35 |
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: |