summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2008-09-19 01:34:28 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2008-09-19 01:34:28 +0000
commitbf493ac0b7a11f14c6db7fdbb90239a8e70bc752 (patch)
tree90467efaeaaedbc4917e7aa77dfda752061000ad /lib/sqlalchemy/orm
parent2c2ecbae867801c66b57770d5f7501bd4c0c3474 (diff)
downloadsqlalchemy-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/orm')
-rw-r--r--lib/sqlalchemy/orm/mapper.py2
-rw-r--r--lib/sqlalchemy/orm/properties.py2
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):