diff options
author | Rick Morrison <rickmorrison@gmail.com> | 2007-03-27 05:07:10 +0000 |
---|---|---|
committer | Rick Morrison <rickmorrison@gmail.com> | 2007-03-27 05:07:10 +0000 |
commit | 363405aa9982fe46096f8b4991a59baf5e09294d (patch) | |
tree | d950d6df75424255645c2e907b387d8ac256379b /lib/sqlalchemy/databases/mssql.py | |
parent | 7300b198b94a2ebc0d1ae939d8d632866df87340 (diff) | |
download | sqlalchemy-363405aa9982fe46096f8b4991a59baf5e09294d.tar.gz |
msssql: more unit tests now pass
Diffstat (limited to 'lib/sqlalchemy/databases/mssql.py')
-rw-r--r-- | lib/sqlalchemy/databases/mssql.py | 11 |
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 + |