From 99cd1346fb8d36744d8d681d159795424cdbf76b Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Thu, 23 Oct 2008 02:35:08 +0000 Subject: [PATCH] - CompileTests run without the DBAPI being used - added stack logic back to visit_compound(), pared down is_subquery --- lib/sqlalchemy/sql/compiler.py | 5 ++++- test/dialect/mssql.py | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index ac46d57686..b4069e6fd6 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -194,7 +194,7 @@ class DefaultCompiler(engine.Compiled): return obj._compiler_dispatch(self, **kwargs) def is_subquery(self): - return self.stack and len(self.stack) > 1 and self.stack[-1].get('from') + return len(self.stack) > 1 def construct_params(self, params=None): """return a dictionary of bind parameter keys and values""" @@ -342,6 +342,8 @@ class DefaultCompiler(engine.Compiled): return self.functions.get(func.__class__, self.functions.get(func.name, func.name + "%(expr)s")) def visit_compound_select(self, cs, asfrom=False, parens=True, **kwargs): + entry = self.stack and self.stack[-1] or {} + self.stack.append({'from':entry.get('from', None), 'iswrapper':True}) text = string.join((self.process(c, asfrom=asfrom, parens=False, compound_index=i) for i, c in enumerate(cs.selects)), @@ -353,6 +355,7 @@ class DefaultCompiler(engine.Compiled): text += self.order_by_clause(cs) text += (cs._limit is not None or cs._offset is not None) and self.limit_clause(cs) or "" + self.stack.pop(-1) if asfrom and parens: return "(" + text + ")" else: diff --git a/test/dialect/mssql.py b/test/dialect/mssql.py index a2fcae8047..4708cc28c4 100755 --- a/test/dialect/mssql.py +++ b/test/dialect/mssql.py @@ -10,7 +10,6 @@ from testlib import * class CompileTest(TestBase, AssertsCompiledSQL): - __only_on__ = 'mssql' __dialect__ = mssql.MSSQLDialect() def test_insert(self): -- 2.47.3