From 9a13f007e2342def94cc7362eeadd5ec8c988340 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Mon, 5 Mar 2018 21:36:18 -0500 Subject: Clone _cte_alias instead of assigning "self" Fixed bug in :class:.`CTE` construct along the same lines as that of :ticket:`4204` where a :class:`.CTE` that was aliased would not copy itself correctly during a "clone" operation as is frequent within the ORM as well as when using the :meth:`.ClauseElement.params` method. Change-Id: Id68d72dd244dedfc7bd6116c9a5123c51a55ea20 Fixes: #4210 --- lib/sqlalchemy/sql/selectable.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/sqlalchemy/sql/selectable.py') diff --git a/lib/sqlalchemy/sql/selectable.py b/lib/sqlalchemy/sql/selectable.py index 29b8836dd..04f6c086d 100644 --- a/lib/sqlalchemy/sql/selectable.py +++ b/lib/sqlalchemy/sql/selectable.py @@ -1391,7 +1391,7 @@ class CTE(Generative, HasSuffixes, Alias): def _copy_internals(self, clone=_clone, **kw): super(CTE, self)._copy_internals(clone, **kw) if self._cte_alias is not None: - self._cte_alias = self + self._cte_alias = clone(self._cte_alias, **kw) self._restates = frozenset([ clone(elem, **kw) for elem in self._restates ]) -- cgit v1.2.1