From 258d07e478eab9ee385f36a5c5fd56c56bf7dfea Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 8 Jun 2022 11:54:46 -0400 Subject: [PATCH] add note re: pickling for loader criteria Change-Id: I75992af71ba08799a03995178a6e4612c9a7428a References: #8108 --- lib/sqlalchemy/orm/_orm_constructors.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/sqlalchemy/orm/_orm_constructors.py b/lib/sqlalchemy/orm/_orm_constructors.py index e682828650..6ef0a647f2 100644 --- a/lib/sqlalchemy/orm/_orm_constructors.py +++ b/lib/sqlalchemy/orm/_orm_constructors.py @@ -724,11 +724,19 @@ def with_loader_criteria( accepts a target class as an argument, when the given class is a base with many different mapped subclasses. + .. note:: when the SQL expression is a lambda, **pickling is not + supported**. Set + :paramref:`_orm.with_loader_criteria.propagate_to_loaders` + to ``False`` to prevent the object from being applied to instances. + :param include_aliases: if True, apply the rule to :func:`_orm.aliased` constructs as well. :param propagate_to_loaders: defaults to True, apply to relationship - loaders such as lazy loaders. + loaders such as lazy loaders. This indicates that the + option object itself including SQL expression is carried along with + each loaded instance. Set to ``False`` to prevent the object from + being assigned to individual instances. .. seealso:: -- 2.47.2