diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2005-07-16 22:21:53 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2005-07-16 22:21:53 +0000 |
commit | acc3a07cd32e3b43b694e98ff715e8b15861b0f3 (patch) | |
tree | 8a5b76a1a94df4d4a0a1fd05f3ae3660ea73e46a /lib/sqlalchemy/sql.py | |
parent | 26d396111001c78aaa79f58a25fc4af4c39895d8 (diff) | |
download | sqlalchemy-acc3a07cd32e3b43b694e98ff715e8b15861b0f3.tar.gz |
Diffstat (limited to 'lib/sqlalchemy/sql.py')
-rw-r--r-- | lib/sqlalchemy/sql.py | 13 |
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) |