summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/databases/mssql.py
diff options
context:
space:
mode:
authorRick Morrison <rickmorrison@gmail.com>2007-03-27 05:07:10 +0000
committerRick Morrison <rickmorrison@gmail.com>2007-03-27 05:07:10 +0000
commit363405aa9982fe46096f8b4991a59baf5e09294d (patch)
treed950d6df75424255645c2e907b387d8ac256379b /lib/sqlalchemy/databases/mssql.py
parent7300b198b94a2ebc0d1ae939d8d632866df87340 (diff)
downloadsqlalchemy-363405aa9982fe46096f8b4991a59baf5e09294d.tar.gz
msssql: more unit tests now pass
Diffstat (limited to 'lib/sqlalchemy/databases/mssql.py')
-rw-r--r--lib/sqlalchemy/databases/mssql.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/sqlalchemy/databases/mssql.py b/lib/sqlalchemy/databases/mssql.py
index aa39e3e09..ff756dd80 100644
--- a/lib/sqlalchemy/databases/mssql.py
+++ b/lib/sqlalchemy/databases/mssql.py
@@ -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
+