]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
msssql: more unit tests now pass
authorRick Morrison <rickmorrison@gmail.com>
Tue, 27 Mar 2007 05:07:10 +0000 (05:07 +0000)
committerRick Morrison <rickmorrison@gmail.com>
Tue, 27 Mar 2007 05:07:10 +0000 (05:07 +0000)
lib/sqlalchemy/databases/mssql.py

index aa39e3e09803a97c621336848f7a9a8bb9b5fabe..ff756dd80243624007d85dd3efbc2d74bd6c7260 100644 (file)
@@ -42,7 +42,7 @@ Known issues / TODO:
   
 """
 
-import sys, StringIO, string, types, re, datetime
+import sys, StringIO, string, types, re, datetime, random
 
 import sqlalchemy.sql as sql
 import sqlalchemy.engine as engine
@@ -736,6 +736,14 @@ class MSSQLCompiler(ansisql.ANSICompiler):
             binary.left, binary.right = binary.right, binary.left
         super(MSSQLCompiler, self).visit_binary(binary)
 
+    def visit_select(self, select):        
+        # label function calls, so they return a name in cursor.description        
+        for i,c in enumerate(select._raw_columns):
+            if isinstance(c, sql._Function):
+                select._raw_columns[i] = c.label(c.name + "_" + hex(random.randint(0, 65535))[2:])        
+
+        super(MSSQLCompiler, self).visit_select(select)
+
     function_rewrites =  {'current_date': 'getdate',
                           'length':     'len',
                           }
@@ -802,3 +810,4 @@ class MSSQLIdentifierPreparer(ansisql.ANSIIdentifierPreparer):
 
 dialect = MSSQLDialect
 
+