SQL server schema aliasing broken

Issue #2169 resolved
Mike Bayer repo owner created an issue
from sqlalchemy import *

m = MetaData()

t1 = Table("table1", m,
    Column('a', Integer),
    schema='schema'
)

rs1 = t1.alias('rs1')

st = select([select([rs1.c.a](t1,)).as_scalar()])
from sqlalchemy.dialects import mssql

#print st
print st.compile(dialect=mssql.dialect())

output

SELECT table1_1.a, (SELECT rs1.a 
FROM [schema](schema).table1 AS rs1) AS anon_1 
FROM [schema](schema).table1 AS rs1

likely fix:

diff -r 00380cf3c304ea7f1c7397f17b828166364c36ac lib/sqlalchemy/dialects/mssql/base.py
--- a/lib/sqlalchemy/dialects/mssql/base.py Wed May 18 12:07:40 2011 -0400
+++ b/lib/sqlalchemy/dialects/mssql/base.py Thu May 19 11:48:19 2011 -0400
@@ -821,7 +821,6 @@

     def visit_alias(self, alias, **kwargs):
         # translate for schema-qualified table aliases
-        self.tablealiases[alias.original](alias.original) = alias
         kwargs['mssql_aliased']('mssql_aliased') = alias.original
         return super(MSSQLCompiler, self).visit_alias(alias, **kwargs)

Comments (2)

  1. Log in to comment