diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-01-23 19:20:49 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-01-23 19:20:49 +0000 |
commit | c8b50c1ffb4ab104144ef9058fa4c653b10ad915 (patch) | |
tree | bf59a61d9c5a1ba4f6c1ef1fb2342ad140b63885 /lib/sqlalchemy/sql/expression.py | |
parent | f980c5c88f616dddf51089dd37ee1023400c0a41 (diff) | |
download | sqlalchemy-c8b50c1ffb4ab104144ef9058fa4c653b10ad915.tar.gz |
- query.join() can also accept tuples of attribute
name/some selectable as arguments. This allows
construction of joins *from* subclasses of a
polymorphic relation, i.e.:
query(Company).\
join(
[('employees', people.join(engineer)), Engineer.name]
)
Diffstat (limited to 'lib/sqlalchemy/sql/expression.py')
-rw-r--r-- | lib/sqlalchemy/sql/expression.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py index c60341802..aff8654f2 100644 --- a/lib/sqlalchemy/sql/expression.py +++ b/lib/sqlalchemy/sql/expression.py @@ -2202,6 +2202,9 @@ class Join(FromClause): return "Join object on %s(%d) and %s(%d)" % (self.left.description, id(self.left), self.right.description, id(self.right)) description = property(description) + def is_derived_from(self, fromclause): + return fromclause is self or self.left.is_derived_from(fromclause) or self.right.is_derived_from(fromclause) + def self_group(self, against=None): return _FromGrouping(self) |