]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- don't overwrite an existing _strategy_keys collection;
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 2 Feb 2015 17:58:24 +0000 (12:58 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 2 Feb 2015 17:58:24 +0000 (12:58 -0500)
this would cause LazyLoader to be initialized twice per property.

lib/sqlalchemy/orm/interfaces.py

index 299ccaaafa7768d16a1fa19df174d4845da277bd..b3b8d612dca11e81725f60e194dc6e2d47a65f20 100644 (file)
@@ -522,7 +522,8 @@ class StrategizedProperty(MapperProperty):
     @classmethod
     def strategy_for(cls, **kw):
         def decorate(dec_cls):
-            dec_cls._strategy_keys = []
+            if not hasattr(dec_cls, '_strategy_keys'):
+                dec_cls._strategy_keys = []
             key = tuple(sorted(kw.items()))
             cls._all_strategies[cls][key] = dec_cls
             dec_cls._strategy_keys.append(key)