]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Don't use unicode with pyodbc on UCS-4 platforms [ticket:787]
authorPaul Johnston <paj@pajhome.org.uk>
Wed, 19 Sep 2007 21:46:24 +0000 (21:46 +0000)
committerPaul Johnston <paj@pajhome.org.uk>
Wed, 19 Sep 2007 21:46:24 +0000 (21:46 +0000)
lib/sqlalchemy/databases/mssql.py

index 6c29520e6cf7fda362b41e434d93154562855379..4f3b9e3dd332f7e98463ae6145a3603951bf5b10 100644 (file)
@@ -742,7 +742,8 @@ class MSSQLDialect_pyodbc(MSSQLDialect):
     supports_sane_rowcount = False
     supports_sane_multi_rowcount = False
     # PyODBC unicode is broken on UCS-4 builds
-    supports_unicode_statements = sys.maxunicode == 65535
+    supports_unicode = sys.maxunicode == 65535
+    supports_unicode_statements = supports_unicode
     
     def __init__(self, **params):
         super(MSSQLDialect_pyodbc, self).__init__(**params)
@@ -759,12 +760,14 @@ class MSSQLDialect_pyodbc(MSSQLDialect):
     import_dbapi = classmethod(import_dbapi)
     
     colspecs = MSSQLDialect.colspecs.copy()
-    colspecs[sqltypes.Unicode] = AdoMSNVarchar
+    if supports_unicode:
+        colspecs[sqltypes.Unicode] = AdoMSNVarchar
     colspecs[sqltypes.Date] = MSDate_pyodbc
     colspecs[sqltypes.DateTime] = MSDateTime_pyodbc
 
     ischema_names = MSSQLDialect.ischema_names.copy()
-    ischema_names['nvarchar'] = AdoMSNVarchar
+    if supports_unicode:
+        ischema_names['nvarchar'] = AdoMSNVarchar
     ischema_names['smalldatetime'] = MSDate_pyodbc
     ischema_names['datetime'] = MSDateTime_pyodbc