diff options
Diffstat (limited to 'lib/sqlalchemy/sql.py')
-rw-r--r-- | lib/sqlalchemy/sql.py | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py index 1d3f74e1a..736dc2f95 100644 --- a/lib/sqlalchemy/sql.py +++ b/lib/sqlalchemy/sql.py @@ -755,6 +755,7 @@ class Select(Selectable): def __init__(self, select): self.select = select def visit_select(self, select): + print "visit" if select is self.select: return select.issubquery = True @@ -766,10 +767,14 @@ class Select(Selectable): self._raw_columns.append(column) - column._process_from_dict(self._froms, False) + for f in column._get_from_objects(): +# TODO +# visitor = Select.CorrelatedVisitor(self) +# f.accept_visitor(visitor) if self.rowid_column is None and hasattr(f, 'rowid_column'): self.rowid_column = f.rowid_column._make_proxy(self) + column._process_from_dict(self._froms, False) for co in column.columns: if self.use_labels: @@ -797,6 +802,9 @@ class Select(Selectable): if type(fromclause) == str: fromclause = FromClause(from_name = fromclause) +# visitor = Select.CorrelatedVisitor(self) +# fromclause.accept_visitor(visitor) + fromclause._process_from_dict(self._froms, True) def append_clause(self, keyword, clause): @@ -811,10 +819,6 @@ class Select(Selectable): if engine is None: raise "no engine supplied, and no engine could be located within the clauses!" - # TODO: this has issues - #visitor = Select.CorrelatedVisitor(self) - #self.accept_visitor(visitor) - return engine.compile(self, bindparams) def _get_froms(self): |