summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-11-09 15:11:38 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-11-09 15:11:38 +0000
commitd54ca6a62afbccab260e5b5e704be8e45e2a026d (patch)
treeed53091974618914957bca94e7270f2c15f920f6
parent2cbb133567befca7e92f8e3bbc0aaae96b1781a8 (diff)
downloadsqlalchemy-d54ca6a62afbccab260e5b5e704be8e45e2a026d.tar.gz
a tweak, still requiring test coverage, to add more "foreign key equivalents" to the equivalent_columns collection
-rw-r--r--lib/sqlalchemy/orm/mapper.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/sqlalchemy/orm/mapper.py b/lib/sqlalchemy/orm/mapper.py
index 3cfe7b3f6..aaff05028 100644
--- a/lib/sqlalchemy/orm/mapper.py
+++ b/lib/sqlalchemy/orm/mapper.py
@@ -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