summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine/default.py
diff options
context:
space:
mode:
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