Skip to content

Commit 53a77eb

Browse files
authored
Make MySQL queries wrap set operations with parens (#782)
* Make MySQL queries wrap set operations with parens * Add tests back
1 parent 822140e commit 53a77eb

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

pypika/dialects.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ class MySQLQueryBuilder(QueryBuilder):
8888
QUERY_CLS = MySQLQuery
8989

9090
def __init__(self, **kwargs: Any) -> None:
91-
super().__init__(dialect=Dialects.MYSQL, wrap_set_operation_queries=False, **kwargs)
91+
super().__init__(dialect=Dialects.MYSQL, **kwargs)
9292
self._duplicate_updates = []
9393
self._ignore_duplicates = False
9494
self._modifiers = []

pypika/tests/test_joins.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -845,12 +845,12 @@ def test_require_equal_number_of_fields(self):
845845
with self.assertRaises(SetOperationException):
846846
str(query1 + query2)
847847

848-
def test_mysql_query_does_not_wrap_unioned_queries_with_params(self):
848+
def test_mysql_query_wraps_unioned_queries(self):
849849
query1 = MySQLQuery.from_(self.table1).select(self.table1.foo)
850850
query2 = Query.from_(self.table2).select(self.table2.bar)
851851

852852
self.assertEqual(
853-
"SELECT `foo` FROM `abc` UNION SELECT `bar` FROM `efg`",
853+
"(SELECT `foo` FROM `abc`) UNION (SELECT `bar` FROM `efg`)",
854854
str(query1 + query2),
855855
)
856856

@@ -968,12 +968,12 @@ def test_require_equal_number_of_fields_intersect(self):
968968
with self.assertRaises(SetOperationException):
969969
str(query1.intersect(query2))
970970

971-
def test_mysql_query_does_not_wrap_intersected_queries_with_params(self):
971+
def test_mysql_query_wraps_intersected_queries(self):
972972
query1 = MySQLQuery.from_(self.table1).select(self.table1.foo)
973973
query2 = Query.from_(self.table2).select(self.table2.bar)
974974

975975
self.assertEqual(
976-
"SELECT `foo` FROM `abc` INTERSECT SELECT `bar` FROM `efg`",
976+
"(SELECT `foo` FROM `abc`) INTERSECT (SELECT `bar` FROM `efg`)",
977977
str(query1.intersect(query2)),
978978
)
979979

@@ -1064,12 +1064,12 @@ def test_require_equal_number_of_fields(self):
10641064
with self.assertRaises(SetOperationException):
10651065
str(query1.minus(query2))
10661066

1067-
def test_mysql_query_does_not_wrap_minus_queries_with_params(self):
1067+
def test_mysql_query_wraps_minus_queries(self):
10681068
query1 = MySQLQuery.from_(self.table1).select(self.table1.foo)
10691069
query2 = Query.from_(self.table2).select(self.table2.bar)
10701070

10711071
self.assertEqual(
1072-
"SELECT `foo` FROM `abc` MINUS SELECT `bar` FROM `efg`",
1072+
"(SELECT `foo` FROM `abc`) MINUS (SELECT `bar` FROM `efg`)",
10731073
str(query1 - query2),
10741074
)
10751075

0 commit comments

Comments
 (0)