From 25831872db7fe2a6eb07c3d50be2504b41d9d5e5 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 19 Feb 2014 19:04:04 -0500 Subject: - Fixed bug in SQLite "join rewriting" where usage of an exists() construct would fail to be rewritten properly, such as when the exists is mapped to a column_property in an intricate nested-join scenario. #2967 --- lib/sqlalchemy/sql/compiler.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'lib/sqlalchemy/sql') diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index d597837bd..17c9c9e8b 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -1286,7 +1286,7 @@ class SQLCompiler(Compiled): # call down to compiler.visit_join(), compiler.visit_select() join_name = selectable.Join.__visit_name__ select_name = selectable.Select.__visit_name__ - + alias_name = selectable.Alias.__visit_name__ def visit(element, **kw): if element in column_translate[-1]: return column_translate[-1][element] @@ -1307,7 +1307,6 @@ class SQLCompiler(Compiled): selectable_ = selectable.Select( [right.element], use_labels=True).alias() - for c in selectable_.c: c._key_label = c.key c._label = c.name @@ -1336,7 +1335,8 @@ class SQLCompiler(Compiled): newelem.right = selectable_ newelem.onclause = visit(newelem.onclause, **kw) - elif newelem.__visit_name__ is select_name: + elif newelem.__visit_name__ is alias_name \ + and newelem.element.__visit_name__ is select_name: column_translate.append({}) newelem._copy_internals(clone=visit, **kw) del column_translate[-1] -- cgit v1.2.1