summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine/default.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-03-11 21:52:54 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2010-03-11 21:52:54 -0500
commit6c2e82ff8ce42d22a974ccd8890f96f671680faa (patch)
tree600da841b0b0051e832d69284013b6d3bd7ebacf /lib/sqlalchemy/engine/default.py
parent875487b8b78761dc162be55602da9b99bf0aca69 (diff)
downloadsqlalchemy-6c2e82ff8ce42d22a974ccd8890f96f671680faa.tar.gz
add a third state to converts_unicode_strings - "conditional". at the moment
this will have us do a check. i.e. for MSSQL where NVARCHAR is unicode and VARCHAR is not.
Diffstat (limited to 'lib/sqlalchemy/engine/default.py')
-rw-r--r--lib/sqlalchemy/engine/default.py20
1 files changed, 18 insertions, 2 deletions
diff --git a/lib/sqlalchemy/engine/default.py b/lib/sqlalchemy/engine/default.py
index cd2c10393..454d2a593 100644
--- a/lib/sqlalchemy/engine/default.py
+++ b/lib/sqlalchemy/engine/default.py
@@ -148,9 +148,25 @@ class DefaultDialect(base.Dialect):
)
row = cursor.fetchone()
- result = isinstance(row[0], unicode)
+ unicode_for_varchar = isinstance(row[0], unicode)
+
+ cursor.execute(
+ str(
+ expression.select(
+ [expression.cast(
+ expression.literal_column("'test unicode returns'"),sqltypes.VARCHAR(60))
+ ]).compile(dialect=self)
+ )
+ )
+
+ row = cursor.fetchone()
+ unicode_for_unicode = isinstance(row[0], unicode)
cursor.close()
- return result
+
+ if unicode_for_unicode and not unicode_for_varchar:
+ return "conditional"
+ else:
+ return unicode_for_varchar
def type_descriptor(self, typeobj):
"""Provide a database-specific ``TypeEngine`` object, given