summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/compiler.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-02-19 19:04:04 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2014-02-19 19:04:04 -0500
commit25831872db7fe2a6eb07c3d50be2504b41d9d5e5 (patch)
tree46e63892b49b3eb2db2de089ae8ccbd56f954d0b /lib/sqlalchemy/sql/compiler.py
parenta0fb9e74c61b0c2cb8f2f91ae6cc38d3c8c95949 (diff)
downloadsqlalchemy-25831872db7fe2a6eb07c3d50be2504b41d9d5e5.tar.gz
- 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
Diffstat (limited to 'lib/sqlalchemy/sql/compiler.py')
-rw-r--r--lib/sqlalchemy/sql/compiler.py6
1 files changed, 3 insertions, 3 deletions
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]