From 258d07e478eab9ee385f36a5c5fd56c56bf7dfea Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Wed, 8 Jun 2022 11:54:46 -0400 Subject: 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(-) (limited to 'lib/sqlalchemy') diff --git a/lib/sqlalchemy/orm/_orm_constructors.py b/lib/sqlalchemy/orm/_orm_constructors.py index e68282865..6ef0a647f 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:: -- cgit v1.2.1