diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2013-06-02 18:05:47 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2013-06-02 18:05:47 -0400 |
| commit | af3fa1f69c077789b8a1c5078d1bb94a8d5e2240 (patch) | |
| tree | 2cf4009db2cb4c3793d400147e8308dfa9e08b4a /lib/sqlalchemy/sql/visitors.py | |
| parent | 32716eae773e6f6b7f37baf705342c1ed89df461 (diff) | |
| download | sqlalchemy-af3fa1f69c077789b8a1c5078d1bb94a8d5e2240.tar.gz | |
implement join rewriting inside of visit_select(). Currently this is global or not based on fixing nested_join_translation as True or not.
Diffstat (limited to 'lib/sqlalchemy/sql/visitors.py')
| -rw-r--r-- | lib/sqlalchemy/sql/visitors.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql/visitors.py b/lib/sqlalchemy/sql/visitors.py index 62f46ab64..31ac686e3 100644 --- a/lib/sqlalchemy/sql/visitors.py +++ b/lib/sqlalchemy/sql/visitors.py @@ -30,6 +30,7 @@ import operator __all__ = ['VisitableType', 'Visitable', 'ClauseVisitor', 'CloningVisitor', 'ReplacingCloningVisitor', 'iterate', 'iterate_depthfirst', 'traverse_using', 'traverse', + 'traverse_depthfirst', 'cloned_traverse', 'replacement_traverse'] @@ -255,7 +256,11 @@ def cloned_traverse(obj, opts, visitors): """clone the given expression structure, allowing modifications by visitors.""" - cloned = util.column_dict() + + if "cloned" in opts: + cloned = opts['cloned'] + else: + cloned = util.column_dict() stop_on = util.column_set(opts.get('stop_on', [])) def clone(elem): |
