# HG changeset patch # User Marcin Kuzminski # Date 2011-05-15 16:22:02 # Node ID e861eb1c4a2f70514b45e2102f3678a8e0e5139a # Parent bbfc3f305c6b00fbc2697480484c0b98cb8d2dc1 update caching_query from latest sqlalchemy diff --git a/rhodecode/model/caching_query.py b/rhodecode/model/caching_query.py --- a/rhodecode/model/caching_query.py +++ b/rhodecode/model/caching_query.py @@ -107,9 +107,9 @@ class CachingQuery(Query): cache.put(cache_key, value) -def query_callable(manager): +def query_callable(manager, query_cls=CachingQuery): def query(*arg, **kw): - return CachingQuery(manager, *arg, **kw) + return query_cls(manager, *arg, **kw) return query @@ -274,10 +274,8 @@ def _params_from_query(query): """ v = [] - def visit_bindparam(bind): value = query._params.get(bind.key, bind.value) - # lazyloader may dig a callable in here, intended # to late-evaluate params after autoflush is called. # convert to a scalar value. @@ -286,5 +284,7 @@ def _params_from_query(query): v.append(value) if query._criterion is not None: - visitors.traverse(query._criterion, {}, {'bindparam': visit_bindparam}) + visitors.traverse(query._criterion, {}, {'bindparam':visit_bindparam}) + for f in query._from_obj: + visitors.traverse(f, {}, {'bindparam':visit_bindparam}) return v