summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2009-04-02 14:53:28 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2009-04-02 14:53:28 +0000
commit13cc1279f83f84b02d19ed8def0fcee09e9fddb1 (patch)
treea8047306b11bd92dbb53cbb8ca50013260afbc78 /lib/sqlalchemy
parent6010afb28f95c7050ca48ddd2e6f65ca6cbae5a1 (diff)
downloadsqlalchemy-13cc1279f83f84b02d19ed8def0fcee09e9fddb1.tar.gz
- Fixed bug in relation(), introduced in 0.5.3,
whereby a self referential relation from a base class to a joined-table subclass would not configure correctly.
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/orm/properties.py6
-rw-r--r--lib/sqlalchemy/sql/util.py1
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/sqlalchemy/orm/properties.py b/lib/sqlalchemy/orm/properties.py
index b9fe1c0f8..398cbe5d9 100644
--- a/lib/sqlalchemy/orm/properties.py
+++ b/lib/sqlalchemy/orm/properties.py
@@ -1021,7 +1021,11 @@ class RelationProperty(StrategizedProperty):
def _refers_to_parent_table(self):
- return self.parent.mapped_table is self.target
+ for c, f in self.synchronize_pairs:
+ if c.table is f.table:
+ return True
+ else:
+ return False
def _is_self_referential(self):
return self.mapper.common_parent(self.parent)
diff --git a/lib/sqlalchemy/sql/util.py b/lib/sqlalchemy/sql/util.py
index a8de5c635..36357faf5 100644
--- a/lib/sqlalchemy/sql/util.py
+++ b/lib/sqlalchemy/sql/util.py
@@ -45,6 +45,7 @@ def find_join_source(clauses, join_to):
return i, f
else:
return None, None
+
def find_tables(clause, check_columns=False, include_aliases=False, include_joins=False, include_selects=False):
"""locate Table objects within the given expression."""