summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2005-07-16 22:21:53 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2005-07-16 22:21:53 +0000
commitacc3a07cd32e3b43b694e98ff715e8b15861b0f3 (patch)
tree8a5b76a1a94df4d4a0a1fd05f3ae3660ea73e46a /lib/sqlalchemy/sql.py
parent26d396111001c78aaa79f58a25fc4af4c39895d8 (diff)
downloadsqlalchemy-acc3a07cd32e3b43b694e98ff715e8b15861b0f3.tar.gz
Diffstat (limited to 'lib/sqlalchemy/sql.py')
-rw-r--r--lib/sqlalchemy/sql.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/sqlalchemy/sql.py b/lib/sqlalchemy/sql.py
index 2d9d26e95..071a6185c 100644
--- a/lib/sqlalchemy/sql.py
+++ b/lib/sqlalchemy/sql.py
@@ -279,6 +279,9 @@ class Join(Selectable):
self.onclause = onclause
self.isouter = isouter
+ def add_join(self, join):
+ pass
+
def select(self, whereclauses = None, **params):
return select([self.left, self.right], and_(self.onclause, whereclauses), **params)
@@ -287,13 +290,15 @@ class Join(Selectable):
self.right.accept_visitor(visitor)
self.onclause.accept_visitor(visitor)
visitor.visit_join(self)
-
+
def _engine(self):
return self.left._engine() or self.right._engine()
def _get_from_objects(self):
- return [self, FromClause(from_key = self.left.id), FromClause(from_key = self.right.id)]
-
+ result = [self] + [FromClause(from_key = c.id) for c in self.left._get_from_objects() + self.right._get_from_objects()]
+ print repr([c.id for c in result])
+ return result
+
class Alias(Selectable):
def __init__(self, selectable, alias):
self.selectable = selectable
@@ -304,6 +309,8 @@ class Alias(Selectable):
for co in selectable.columns:
co._make_proxy(self)
+ primary_keys = property (lambda self: [c for c in self.columns if c.primary_key])
+
def accept_visitor(self, visitor):
self.selectable.accept_visitor(visitor)
visitor.visit_alias(self)