-import functools
from sqlalchemy import Column
from sqlalchemy import delete
from sqlalchemy import Integer
from sqlalchemy import testing
from sqlalchemy import text
from sqlalchemy import update
-from sqlalchemy.dialects import mssql, mysql, postgresql
+from sqlalchemy.dialects import mssql, postgresql
from sqlalchemy.engine import default
from sqlalchemy.exc import CompileError
from sqlalchemy.sql import and_
self.assert_compile(
stmt,
- "WITH some_cte AS (WITH some_cte AS (SELECT %(param_1)s AS inner_cte) "
- "SELECT some_cte.inner_cte AS outer_cte FROM some_cte) "
+ "WITH some_cte AS (WITH some_cte AS "
+ "(SELECT %(param_1)s AS inner_cte) "
+ "SELECT some_cte.inner_cte AS outer_cte "
+ "FROM some_cte) "
"SELECT some_cte.outer_cte FROM some_cte",
)
"(SELECT %(param_1)s AS inner_cte_1)"
", wrapper AS "
"(WITH nesting_2 AS "
- "(SELECT nesting_cte.inner_cte_1 + %(inner_cte_1_2)s AS next_value "
+ "(SELECT nesting_cte.inner_cte_1 + %(inner_cte_1_2)s "
+ "AS next_value "
"FROM nesting_cte)"
- " SELECT nesting_cte.inner_cte_1 - %(inner_cte_1_1)s AS next_value "
+ " SELECT nesting_cte.inner_cte_1 - %(inner_cte_1_1)s "
+ "AS next_value "
"FROM nesting_cte UNION SELECT nesting_2.next_value AS next_value "
"FROM nesting_2)"
" SELECT wrapper.next_value "
self.assert_compile(
stmt,
- "WITH RECURSIVE cte(outer_cte) AS (WITH RECURSIVE nesting(inner_cte) "
+ "WITH RECURSIVE cte(outer_cte) AS "
+ "(WITH RECURSIVE nesting(inner_cte) "
"AS (SELECT %(param_1)s AS inner_cte) "
"SELECT nesting.inner_cte AS outer_cte FROM nesting) "
"SELECT cte.outer_cte FROM cte",
"(WITH generator AS "
"(SELECT %(param_1)s AS id, %(param_2)s AS price) "
"INSERT INTO products (id, price) "
- "SELECT generator.id AS id, generator.price AS price FROM generator "
+ "SELECT generator.id AS id, generator.price "
+ "AS price FROM generator "
"RETURNING products.id, products.price) "
"SELECT insert_cte.id, insert_cte.price "
"FROM insert_cte",
" WHERE allow_multiple_ref.the_value < %(the_value_2)s"
" LIMIT %(param_2)s) AS val) "
"SELECT allow_multiple_ref.the_value * %(the_value_1)s AS anon_1"
- " FROM allow_multiple_ref, should_continue WHERE should_continue.val != true"
+ " FROM allow_multiple_ref, should_continue "
+ "WHERE should_continue.val != true"
" UNION ALL SELECT allow_multiple_ref.the_value * %(the_value_3)s"
" AS anon_2 FROM allow_multiple_ref, should_continue"
" WHERE should_continue.val != true))"