summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/compiler.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2021-09-16 13:38:11 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2021-09-16 13:40:47 -0400
commit8fca5b6e6a42b6221faaf26a912603393afd8607 (patch)
treed06793fc78d9835b040bf2a9d14b35e3da46162a /lib/sqlalchemy/sql/compiler.py
parentc27bf6f7ecc1a120f0c8029eaa5969b6d2aa255d (diff)
downloadsqlalchemy-8fca5b6e6a42b6221faaf26a912603393afd8607.tar.gz
use the stack for insert_from_select
Fixed issue related to new ``add_cte()`` feature where pairing two "INSERT..FROM SELECT" statements simultaneously would lose track of the two independent SELECT statements, leading to the wrong SQL. Fixes: #7036 Change-Id: I90fe47eb203bc5c1ea5810db0edba08250b2b7e6
Diffstat (limited to 'lib/sqlalchemy/sql/compiler.py')
-rw-r--r--lib/sqlalchemy/sql/compiler.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py
index 9af82823a..5153f54d1 100644
--- a/lib/sqlalchemy/sql/compiler.py
+++ b/lib/sqlalchemy/sql/compiler.py
@@ -3687,7 +3687,10 @@ class SQLCompiler(Compiled):
returning_clause = None
if insert_stmt.select is not None:
- select_text = self.process(self._insert_from_select, **kw)
+ # placed here by crud.py
+ select_text = self.process(
+ self.stack[-1]["insert_from_select"], **kw
+ )
if self.ctes and toplevel and self.dialect.cte_follows_insert:
text += " %s%s" % (self._render_cte_clause(), select_text)