summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-11-13 13:17:38 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2014-11-13 13:17:38 -0500
commit026449c15ff35a9b89c2ca591d3e3cc791857272 (patch)
treec7534832b2f40abec2a4b40a9009920cfe71bd87 /lib/sqlalchemy/orm
parent64e53f26a538e4965fcab76b1a457f15a43a0d0c (diff)
downloadsqlalchemy-026449c15ff35a9b89c2ca591d3e3cc791857272.tar.gz
- Fixed a leak which would occur in the unsupported and highly
non-recommended use case of replacing a relationship on a fixed mapped class many times, referring to an arbitrarily growing number of target mappers. A warning is emitted when the old relationship is replaced, however if the mapping were already used for querying, the old relationship would still be referenced within some registries. fixes #3251
Diffstat (limited to 'lib/sqlalchemy/orm')
-rw-r--r--lib/sqlalchemy/orm/mapper.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/sqlalchemy/orm/mapper.py b/lib/sqlalchemy/orm/mapper.py
index 7e88ba161..863dab5cb 100644
--- a/lib/sqlalchemy/orm/mapper.py
+++ b/lib/sqlalchemy/orm/mapper.py
@@ -1581,6 +1581,8 @@ class Mapper(InspectionAttr):
self,
prop,
))
+ oldprop = self._props[key]
+ self._path_registry.pop(oldprop, None)
self._props[key] = prop