summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/expression.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-01-23 19:20:49 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-01-23 19:20:49 +0000
commitc8b50c1ffb4ab104144ef9058fa4c653b10ad915 (patch)
treebf59a61d9c5a1ba4f6c1ef1fb2342ad140b63885 /lib/sqlalchemy/sql/expression.py
parentf980c5c88f616dddf51089dd37ee1023400c0a41 (diff)
downloadsqlalchemy-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.py3
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)