From: Mike Bayer Date: Mon, 2 Feb 2015 17:58:24 +0000 (-0500) Subject: - don't overwrite an existing _strategy_keys collection; X-Git-Tag: rel_1_0_0b1~79 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=54088c9b33809dd6d76cacfc86f9012d4f61d361;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - don't overwrite an existing _strategy_keys collection; this would cause LazyLoader to be initialized twice per property. --- diff --git a/lib/sqlalchemy/orm/interfaces.py b/lib/sqlalchemy/orm/interfaces.py index 299ccaaafa..b3b8d612dc 100644 --- a/lib/sqlalchemy/orm/interfaces.py +++ b/lib/sqlalchemy/orm/interfaces.py @@ -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)