summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2005-10-30 01:09:38 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2005-10-30 01:09:38 +0000
commitd541b93c56ca9583afb5d142c24f0f80ad171756 (patch)
tree2c1ab95075b194c5bf25b99d91fe7e6ad63b82cb /lib/sqlalchemy/sql.py
parenta4ce639293ddddab6ec724b0776b49a624d90a32 (diff)
downloadsqlalchemy-d541b93c56ca9583afb5d142c24f0f80ad171756.tar.gz
Diffstat (limited to 'lib/sqlalchemy/sql.py')
-rw-r--r--lib/sqlalchemy/sql.py15
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)