diff --git a/pypika/queries.py b/pypika/queries.py index 42c7c459..1f913519 100644 --- a/pypika/queries.py +++ b/pypika/queries.py @@ -1381,7 +1381,8 @@ def _apply_pagination(self, querystring: str, **kwargs) -> str: def _with_sql(self, **kwargs: Any) -> str: return "WITH " + ",".join( - clause.name + " AS (" + clause.get_sql(subquery=False, with_alias=False, **kwargs) + ") " + format_quotes(clause.name, kwargs.get('alias_quote_char') or kwargs.get('quote_char')) + + " AS (" + clause.get_sql(subquery=False, with_alias=False, **kwargs) + ") " for clause in self._with ) diff --git a/pypika/tests/test_inserts.py b/pypika/tests/test_inserts.py index f86efd7a..f44128b2 100644 --- a/pypika/tests/test_inserts.py +++ b/pypika/tests/test_inserts.py @@ -165,7 +165,7 @@ def test_insert_with_statement(self): q = Query().with_(sub_query, 'sub_qs').into(self.table_abc).select(aliased.id).from_(aliased) self.assertEqual( - 'WITH sub_qs AS (SELECT "id" FROM "abc") INSERT INTO "abc" SELECT "sub_qs"."id" FROM sub_qs', str(q) + 'WITH "sub_qs" AS (SELECT "id" FROM "abc") INSERT INTO "abc" SELECT "sub_qs"."id" FROM sub_qs', str(q) ) diff --git a/pypika/tests/test_selects.py b/pypika/tests/test_selects.py index 1ce04937..6a9ff11e 100644 --- a/pypika/tests/test_selects.py +++ b/pypika/tests/test_selects.py @@ -1291,7 +1291,7 @@ def test_with(self): test_query = Query.with_(sub_query, "an_alias").from_(AliasedQuery("an_alias")).select("*") self.assertEqual( - 'WITH an_alias AS (SELECT "fizz" FROM "efg") SELECT * FROM an_alias', + 'WITH "an_alias" AS (SELECT "fizz" FROM "efg") SELECT * FROM an_alias', str(test_query), ) @@ -1305,7 +1305,7 @@ def test_join_with_with(self): .select("*") ) self.assertEqual( - 'WITH an_alias AS (SELECT "fizz" FROM "efg") ' + 'WITH "an_alias" AS (SELECT "fizz" FROM "efg") ' 'SELECT * FROM "abc" JOIN an_alias ON "an_alias"."fizz"="abc"."buzz"', str(test_query), ) @@ -1314,7 +1314,7 @@ def test_select_from_with_returning(self): sub_query = PostgreSQLQuery.into(self.table_abc).insert(1).returning('*') test_query = Query.with_(sub_query, "an_alias").from_(AliasedQuery("an_alias")).select("*") self.assertEqual( - 'WITH an_alias AS (INSERT INTO "abc" VALUES (1) RETURNING *) SELECT * FROM an_alias', str(test_query) + 'WITH "an_alias" AS (INSERT INTO "abc" VALUES (1) RETURNING *) SELECT * FROM an_alias', str(test_query) ) diff --git a/pypika/tests/test_updates.py b/pypika/tests/test_updates.py index fb9d714d..ed0c36f7 100644 --- a/pypika/tests/test_updates.py +++ b/pypika/tests/test_updates.py @@ -88,7 +88,7 @@ def test_update_with_statement(self): .where(self.table_abc.comp.eq(an_alias.alias_comp)) ) self.assertEqual( - 'WITH an_alias AS (SELECT "fizz" FROM "efg") ' + 'WITH "an_alias" AS (SELECT "fizz" FROM "efg") ' 'UPDATE "abc" SET "lname"="an_alias"."long_name" FROM an_alias ' 'WHERE "abc"."comp"="an_alias"."alias_comp"', str(q),