From 363405aa9982fe46096f8b4991a59baf5e09294d Mon Sep 17 00:00:00 2001 From: Rick Morrison Date: Tue, 27 Mar 2007 05:07:10 +0000 Subject: [PATCH] msssql: more unit tests now pass --- lib/sqlalchemy/databases/mssql.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/sqlalchemy/databases/mssql.py b/lib/sqlalchemy/databases/mssql.py index aa39e3e098..ff756dd802 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 + -- 2.47.2