diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2005-10-30 01:09:38 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2005-10-30 01:09:38 +0000 |
commit | d541b93c56ca9583afb5d142c24f0f80ad171756 (patch) | |
tree | 2c1ab95075b194c5bf25b99d91fe7e6ad63b82cb /lib/sqlalchemy/sql.py | |
parent | a4ce639293ddddab6ec724b0776b49a624d90a32 (diff) | |
download | sqlalchemy-d541b93c56ca9583afb5d142c24f0f80ad171756.tar.gz |
Diffstat (limited to 'lib/sqlalchemy/sql.py')
-rw-r--r-- | lib/sqlalchemy/sql.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py index 2cb7d17ba..72eea4241 100644 --- a/lib/sqlalchemy/sql.py +++ b/lib/sqlalchemy/sql.py @@ -230,6 +230,10 @@ class ClauseElement(object): raise NotImplementedError(repr(self)) def _get_from_objects(self): raise NotImplementedError(repr(self)) + def _process_from_dict(self, data): + for f in self._get_from_objects(): + data[f.id] = f + data[self.id] = self def accept_visitor(self, visitor): raise NotImplementedError(repr(self)) @@ -550,6 +554,11 @@ class Join(Selectable): visitor.visit_join(self) engine = property(lambda s:s.left.engine or s.right.engine) + + def _process_from_dict(self, data): + for f in self._get_from_objects(): + data[f.id] = f + data[self.id] = self def _get_from_objects(self): m = {} @@ -763,14 +772,14 @@ class Select(Selectable): if type(fromclause) == str: fromclause = FromClause(from_name = fromclause) + fromclause._process_from_dict(self.froms) + return + self.froms[fromclause.id] = fromclause for r in fromclause._get_from_objects(): self.froms[r.id] = r - def append_join(self, joinon, right, whereclause, **params): - self.append_from(self.froms[joinon], right, whereclause, **params) - def append_clause(self, keyword, clause): if type(clause) == str: clause = TextClause(clause) |