это ошибка в примере. Вот обходной путь, который должен получить все (хотя я хотел бы улучшить это, чтобы не требовать полной компиляции операторов):
diff -r affaa93fad92 examples/beaker_caching/caching_query.py
--- a/examples/beaker_caching/caching_query.py Tue Feb 14 10:16:16 2012 -0500
+++ b/examples/beaker_caching/caching_query.py Tue Feb 14 11:57:59 2012 -0500
@@ -268,8 +268,5 @@
value = bind.value
v.append(value)
- if query._criterion is not None:
- visitors.traverse(query._criterion, {}, {'bindparam':visit_bindparam})
- for f in query._from_obj:
- visitors.traverse(f, {}, {'bindparam':visit_bindparam})
+ visitors.traverse(query.statement, {}, {'bindparam':visit_bindparam})
return v