diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-09-19 01:34:28 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-09-19 01:34:28 +0000 |
| commit | bf493ac0b7a11f14c6db7fdbb90239a8e70bc752 (patch) | |
| tree | 90467efaeaaedbc4917e7aa77dfda752061000ad /lib/sqlalchemy | |
| parent | 2c2ecbae867801c66b57770d5f7501bd4c0c3474 (diff) | |
| download | sqlalchemy-bf493ac0b7a11f14c6db7fdbb90239a8e70bc752.tar.gz | |
- Fixed bug involving read/write relation()s that
contain literal or other non-column expressions
within their primaryjoin condition equated
to a foreign key column.
- fixed UnmappedColumnError exception raise to not assume it was passed a column
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/orm/mapper.py | 2 | ||||
| -rw-r--r-- | lib/sqlalchemy/orm/properties.py | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/lib/sqlalchemy/orm/mapper.py b/lib/sqlalchemy/orm/mapper.py index 52b90d22a..e79cd47cb 100644 --- a/lib/sqlalchemy/orm/mapper.py +++ b/lib/sqlalchemy/orm/mapper.py @@ -1012,7 +1012,7 @@ class Mapper(object): if prop: raise exc.UnmappedColumnError("Column '%s.%s' is not available, due to conflicting property '%s':%s" % (column.table.name, column.name, column.key, repr(prop))) else: - raise exc.UnmappedColumnError("No column %s.%s is configured on mapper %s..." % (column.table.name, column.name, str(self))) + raise exc.UnmappedColumnError("No column %s is configured on mapper %s..." % (column, self)) # TODO: improve names def _get_state_attr_by_column(self, state, column): diff --git a/lib/sqlalchemy/orm/properties.py b/lib/sqlalchemy/orm/properties.py index 190b9dc0c..92adc19cd 100644 --- a/lib/sqlalchemy/orm/properties.py +++ b/lib/sqlalchemy/orm/properties.py @@ -628,7 +628,7 @@ class PropertyLoader(StrategizedProperty): self.synchronize_pairs.append((r, l)) else: eq_pairs = criterion_as_pairs(self.primaryjoin, consider_as_foreign_keys=self._foreign_keys, any_operator=self.viewonly) - eq_pairs = [(l, r) for l, r in eq_pairs if (self._col_is_part_of_mappings(l) and self._col_is_part_of_mappings(r)) or r in self._foreign_keys] + eq_pairs = [(l, r) for l, r in eq_pairs if (self._col_is_part_of_mappings(l) and self._col_is_part_of_mappings(r)) or self.viewonly and r in self._foreign_keys] if not eq_pairs: if not self.viewonly and criterion_as_pairs(self.primaryjoin, consider_as_foreign_keys=self._foreign_keys, any_operator=True): |
