]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Add cross reference in other way [failing]
authorEric Masseran <eric.masseran@gmail.com>
Fri, 16 Jul 2021 16:48:25 +0000 (18:48 +0200)
committerEric Masseran <eric.masseran@gmail.com>
Fri, 16 Jul 2021 16:48:25 +0000 (18:48 +0200)
test/sql/test_cte.py

index a20d9cf62ed8fdbda083603e4dc50335e2e9d22a..b53a5f014b253ba739b8c843e7a055e70de5c8e7 100644 (file)
@@ -1492,6 +1492,23 @@ class NestingCTETest(fixtures.TestBase, AssertsCompiledSQL):
             ") SELECT cte.inner_cte_1, cte.inner_cte_2 FROM cte",
         )
 
+        # 2 next 1
+
+        nesting_cte_2_1 = select([select_2_cte, select_1_cte]).cte("cte")
+        stmt_2_1 = select([nesting_cte_2_1])
+        self.assert_compile(
+            stmt_2_1,
+            # FIXME: nesting_1 is generated 2 times
+            "WITH cte AS ("
+            "WITH nesting_1 AS (SELECT %(param_1)s AS inner_cte_1)"
+            ", nesting_2 AS (SELECT nesting_1.inner_cte_1 + %(inner_cte_1_1)s"
+            " AS inner_cte_2 FROM nesting_1)"
+            " SELECT nesting_2.inner_cte_2 AS inner_cte_2"
+            ", nesting_1.inner_cte_1 AS inner_cte_1"
+            " FROM nesting_2, nesting_1"
+            ") SELECT cte.inner_cte_2, cte.inner_cte_1 FROM cte",
+        )
+
     def test_nesting_cte_in_nesting_cte_in_cte(self):
         select_1_cte = select([literal(1).label("inner_cte")]).cte(
             "nesting_1", nesting=True