]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
a tweak, still requiring test coverage, to add more "foreign key equivalents" to...
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 9 Nov 2007 15:11:38 +0000 (15:11 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 9 Nov 2007 15:11:38 +0000 (15:11 +0000)
lib/sqlalchemy/orm/mapper.py

index 3cfe7b3f61a6615810a650164ebdd41c22676993..aaff050285a25665f3bbeb5760525261ee7f272c 100644 (file)
@@ -519,12 +519,15 @@ class Mapper(object):
             if mapper.inherit_condition is not None:
                 vis.traverse(mapper.inherit_condition)
 
-        for col in (self.primary_key_argument or self.pks_by_table[self.mapped_table]):
-            if not col.foreign_keys:
-                result.setdefault(col, util.Set()).add(col)
-            else:
-                for fk in col.foreign_keys:
-                    result.setdefault(fk.column, util.Set()).add(col)
+        # TODO: matching of cols to foreign keys might better be generalized
+        # into general column translation (i.e. corresponding_column)
+        for column in (self.primary_key_argument or self.pks_by_table[self.mapped_table]):
+            for col in column.proxy_set:
+                if not col.foreign_keys:
+                    result.setdefault(col, util.Set()).add(col)
+                else:
+                    for fk in col.foreign_keys:
+                        result.setdefault(fk.column, util.Set()).add(col)
 
         return result