diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2013-06-02 20:23:03 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2013-06-02 20:23:03 -0400 |
commit | 2b0b802b4973e84871d1f266cc2e8aac6c125d17 (patch) | |
tree | a58a7b70b5f6da7d76db92f386d50c365f8cc7df /lib/sqlalchemy/sql/compiler.py | |
parent | 35a674aab4a832e76232e7be4b16b7a635a19824 (diff) | |
download | sqlalchemy-2b0b802b4973e84871d1f266cc2e8aac6c125d17.tar.gz |
working through tests....
Diffstat (limited to 'lib/sqlalchemy/sql/compiler.py')
-rw-r--r-- | lib/sqlalchemy/sql/compiler.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index ff041d5e4..d5ba64938 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -1079,7 +1079,10 @@ class SQLCompiler(engine.Compiled): def _transform_select_for_nested_joins(self, select): adapters = [] + stop_on = [] + # test for "unconditional" - any statement with + # no_replacement_traverse setup, i.e. query.statement, from_self(), etc. traverse_options = {"cloned": {}, "unconditional": True} def visit_join(elem): @@ -1090,6 +1093,12 @@ class SQLCompiler(engine.Compiled): while adapters: adapt = adapters.pop(-1) selectable = adapt.traverse(selectable) + #stop_on.append(selectable) + + # test: see test_subquery_relations: + # CyclicalInheritingEagerTestTwo.test_integrate + stop_on.append(elem.left) + for c in selectable.c: c._label = c._key_label = c.name @@ -1097,6 +1106,7 @@ class SQLCompiler(engine.Compiled): elem.right = selectable adapter = sql_util.ClauseAdapter(selectable, traverse_options=traverse_options) + adapter.__traverse_options__['stop_on'].extend(stop_on) adapters.append(adapter) select = visitors.cloned_traverse(select, @@ -1119,7 +1129,9 @@ class SQLCompiler(engine.Compiled): positional_names=None, nested_join_translation=False, **kwargs): - #nested_join_translation = True + + if self.dialect.supports_right_nested_joins: + nested_join_translation = True if not nested_join_translation: transformed_select = self._transform_select_for_nested_joins(select) text = self.visit_select( |