From: Rick Morrison Date: Tue, 27 Mar 2007 05:07:10 +0000 (+0000) Subject: msssql: more unit tests now pass X-Git-Tag: rel_0_3_7~107 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=363405aa9982fe46096f8b4991a59baf5e09294d;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git msssql: more unit tests now pass --- 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 +