diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-11-09 15:11:38 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-11-09 15:11:38 +0000 |
commit | d54ca6a62afbccab260e5b5e704be8e45e2a026d (patch) | |
tree | ed53091974618914957bca94e7270f2c15f920f6 | |
parent | 2cbb133567befca7e92f8e3bbc0aaae96b1781a8 (diff) | |
download | sqlalchemy-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.py | 15 |
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 |