diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2022-03-17 17:22:05 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@ci3.zzzcomputing.com> | 2022-03-17 17:22:05 +0000 |
| commit | bb70f11f5c67d25f2f493596961490ff98ae4921 (patch) | |
| tree | 689e87261fafd0ae086514c52ed36ca0e468880a /lib/sqlalchemy | |
| parent | 3b520e758a715cf817075e4a90ae1b5813ffadd3 (diff) | |
| parent | 58666d32742dc050c2e48c48ab8f946561636e8b (diff) | |
| download | sqlalchemy-bb70f11f5c67d25f2f493596961490ff98ae4921.tar.gz | |
Merge "remove intermediary _is_clone_of entries when cloning" into main
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/sql/elements.py | 3 | ||||
| -rw-r--r-- | lib/sqlalchemy/sql/selectable.py | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/lib/sqlalchemy/sql/elements.py b/lib/sqlalchemy/sql/elements.py index c1a7d8476..696d3c6f2 100644 --- a/lib/sqlalchemy/sql/elements.py +++ b/lib/sqlalchemy/sql/elements.py @@ -358,7 +358,8 @@ class ClauseElement( # process leaves around a lot of remnants of the previous clause # typically in the form of column expressions still attached to the # old table. - c._is_clone_of = self + cc = self._is_clone_of + c._is_clone_of = cc if cc is not None else self return c diff --git a/lib/sqlalchemy/sql/selectable.py b/lib/sqlalchemy/sql/selectable.py index 0692483e9..e143d1476 100644 --- a/lib/sqlalchemy/sql/selectable.py +++ b/lib/sqlalchemy/sql/selectable.py @@ -4135,7 +4135,8 @@ class _MemoizedSelectEntities( def _clone(self, **kw): c = self.__class__.__new__(self.__class__) c.__dict__ = {k: v for k, v in self.__dict__.items()} - c._is_clone_of = self + + c._is_clone_of = self.__dict__.get("_is_clone_of", self) return c @classmethod |
