Skip to content

Commit

Permalink
Make MySQL queries wrap set operations with parens (#782)
Browse files Browse the repository at this point in the history
* Make MySQL queries wrap set operations with parens

* Add tests back
  • Loading branch information
pandaxtc committed Apr 26, 2024
1 parent 822140e commit 53a77eb
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
2 changes: 1 addition & 1 deletion pypika/dialects.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ class MySQLQueryBuilder(QueryBuilder):
QUERY_CLS = MySQLQuery

def __init__(self, **kwargs: Any) -> None:
super().__init__(dialect=Dialects.MYSQL, wrap_set_operation_queries=False, **kwargs)
super().__init__(dialect=Dialects.MYSQL, **kwargs)
self._duplicate_updates = []
self._ignore_duplicates = False
self._modifiers = []
Expand Down
12 changes: 6 additions & 6 deletions pypika/tests/test_joins.py
Original file line number Diff line number Diff line change
Expand Up @@ -845,12 +845,12 @@ def test_require_equal_number_of_fields(self):
with self.assertRaises(SetOperationException):
str(query1 + query2)

def test_mysql_query_does_not_wrap_unioned_queries_with_params(self):
def test_mysql_query_wraps_unioned_queries(self):
query1 = MySQLQuery.from_(self.table1).select(self.table1.foo)
query2 = Query.from_(self.table2).select(self.table2.bar)

self.assertEqual(
"SELECT `foo` FROM `abc` UNION SELECT `bar` FROM `efg`",
"(SELECT `foo` FROM `abc`) UNION (SELECT `bar` FROM `efg`)",
str(query1 + query2),
)

Expand Down Expand Up @@ -968,12 +968,12 @@ def test_require_equal_number_of_fields_intersect(self):
with self.assertRaises(SetOperationException):
str(query1.intersect(query2))

def test_mysql_query_does_not_wrap_intersected_queries_with_params(self):
def test_mysql_query_wraps_intersected_queries(self):
query1 = MySQLQuery.from_(self.table1).select(self.table1.foo)
query2 = Query.from_(self.table2).select(self.table2.bar)

self.assertEqual(
"SELECT `foo` FROM `abc` INTERSECT SELECT `bar` FROM `efg`",
"(SELECT `foo` FROM `abc`) INTERSECT (SELECT `bar` FROM `efg`)",
str(query1.intersect(query2)),
)

Expand Down Expand Up @@ -1064,12 +1064,12 @@ def test_require_equal_number_of_fields(self):
with self.assertRaises(SetOperationException):
str(query1.minus(query2))

def test_mysql_query_does_not_wrap_minus_queries_with_params(self):
def test_mysql_query_wraps_minus_queries(self):
query1 = MySQLQuery.from_(self.table1).select(self.table1.foo)
query2 = Query.from_(self.table2).select(self.table2.bar)

self.assertEqual(
"SELECT `foo` FROM `abc` MINUS SELECT `bar` FROM `efg`",
"(SELECT `foo` FROM `abc`) MINUS (SELECT `bar` FROM `efg`)",
str(query1 - query2),
)

Expand Down

0 comments on commit 53a77eb

Please sign in to comment.