From e3b09f65df5dd51f87515f115827dedba50e9dca Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Thu, 25 Mar 2021 08:40:16 -0400 Subject: Accept **kw in annotated._clone() method Fixed bug where combinations of the new "relationship with criteria" feature could fail in conjunction with features that make use of the new "lambda SQL" feature, including loader strategies such as selectinload and lazyload, for more complicated scenarios such as polymorphic loading. Fixes: #6131 Change-Id: I915dead6596866ae5fd1a7f593a90bce4b61d1af --- lib/sqlalchemy/sql/annotation.py | 4 ++-- lib/sqlalchemy/sql/elements.py | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'lib/sqlalchemy/sql') diff --git a/lib/sqlalchemy/sql/annotation.py b/lib/sqlalchemy/sql/annotation.py index 23b5052a9..8e5cdf148 100644 --- a/lib/sqlalchemy/sql/annotation.py +++ b/lib/sqlalchemy/sql/annotation.py @@ -199,8 +199,8 @@ class Annotated(object): def _constructor(self): return self.__element._constructor - def _clone(self): - clone = self.__element._clone() + def _clone(self, **kw): + clone = self.__element._clone(**kw) if clone is self.__element: # detect immutable, don't change anything return self diff --git a/lib/sqlalchemy/sql/elements.py b/lib/sqlalchemy/sql/elements.py index 20c3e8991..74e8dceff 100644 --- a/lib/sqlalchemy/sql/elements.py +++ b/lib/sqlalchemy/sql/elements.py @@ -1493,7 +1493,8 @@ class BindParameter(roles.InElementRole, ColumnElement): self.__dict__.update(state) def __repr__(self): - return "BindParameter(%r, %r, type_=%r)" % ( + return "%s(%r, %r, type_=%r)" % ( + self.__class__.__name__, self.key, self.value, self.type, -- cgit v1.2.1