summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2015-02-02 12:58:24 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2015-02-02 12:58:24 -0500
commit54088c9b33809dd6d76cacfc86f9012d4f61d361 (patch)
tree964f53a3c34526f6fcb37fbf26fb3adab3933bae
parentb2189da65019ed2f44e77933a122619489319c5a (diff)
downloadsqlalchemy-54088c9b33809dd6d76cacfc86f9012d4f61d361.tar.gz
- don't overwrite an existing _strategy_keys collection;
this would cause LazyLoader to be initialized twice per property.
-rw-r--r--lib/sqlalchemy/orm/interfaces.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/sqlalchemy/orm/interfaces.py b/lib/sqlalchemy/orm/interfaces.py
index 299ccaaaf..b3b8d612d 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)