From: Mike Bayer Date: Fri, 25 Oct 2019 14:08:18 +0000 (-0400) Subject: Warn that before_compile for lazyload needs bake_queries=False X-Git-Tag: rel_1_3_11~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=247f703c7b3f11c6a14036b864a417994e2b28d7;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Warn that before_compile for lazyload needs bake_queries=False The longer term future plan for ORM queries is that there will be a new hook that receives queries before invocation rather than "compilation", which will make use of a new caching system. Fixes: #4947 Change-Id: I256c16155a0cc9b7133e86e22d27040cb64eb1a9 (cherry picked from commit 172d99a8a1282b534aeadafebdd2af0162758931) --- diff --git a/lib/sqlalchemy/orm/events.py b/lib/sqlalchemy/orm/events.py index b243e783b3..8b560804f9 100644 --- a/lib/sqlalchemy/orm/events.py +++ b/lib/sqlalchemy/orm/events.py @@ -2391,6 +2391,13 @@ class QueryEvents(event.Events): The event should normally be listened with the ``retval=True`` parameter set, so that the modified query may be returned. + .. warning:: If the :meth:`.QueryEvents.before_compile` event is to + be applied to :class:`.Query` objects that are used for lazy loading + of :func:`.relationships` (as described at :ref:`lazy_loading`), + it may be necessary to set :paramref:`.relationship.bake_queries` + to ``False``, else the :meth:`.QueryEvents.before_compile` event + will not be invoked for each lazy load operation. + .. seealso:: :meth:`.QueryEvents.before_compile_update`