Skip to content

Commit d0d5a2b

Browse files
committed
Merge branch 'master' of github.com:telerytech/piccolo
2 parents dd466ae + a979b68 commit d0d5a2b

File tree

4 files changed

+22
-7
lines changed

4 files changed

+22
-7
lines changed

piccolo/columns/combination.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ def querystring(self) -> QueryString:
4545
)
4646

4747
@property
48-
def querystring_for_update(self) -> QueryString:
48+
def querystring_for_update_and_delete(self) -> QueryString:
4949
return QueryString(
5050
"({} " + self.operator + " {})",
51-
self.first.querystring_for_update,
52-
self.second.querystring_for_update,
51+
self.first.querystring_for_update_and_delete,
52+
self.second.querystring_for_update_and_delete,
5353
)
5454

5555
def __str__(self):
@@ -131,7 +131,7 @@ def __init__(self, sql: str, *args: t.Any) -> None:
131131
self.querystring = QueryString(sql, *args)
132132

133133
@property
134-
def querystring_for_update(self) -> QueryString:
134+
def querystring_for_update_and_delete(self) -> QueryString:
135135
return self.querystring
136136

137137
def __str__(self):
@@ -218,7 +218,7 @@ def querystring(self) -> QueryString:
218218
return QueryString(template, *args)
219219

220220
@property
221-
def querystring_for_update(self) -> QueryString:
221+
def querystring_for_update_and_delete(self) -> QueryString:
222222
args: t.List[t.Any] = []
223223
if self.value != UNDEFINED:
224224
args.append(self.value)

piccolo/query/methods/delete.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def default_querystrings(self) -> t.Sequence[QueryString]:
6161
querystring = QueryString(
6262
"{} WHERE {}",
6363
querystring,
64-
self.where_delegate._where.querystring,
64+
self.where_delegate._where.querystring_for_update_and_delete,
6565
)
6666

6767
if self.returning_delegate._returning:

piccolo/query/methods/update.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def default_querystrings(self) -> t.Sequence[QueryString]:
104104
querystring = QueryString(
105105
"{} WHERE {}",
106106
querystring,
107-
self.where_delegate._where.querystring_for_update,
107+
self.where_delegate._where.querystring_for_update_and_delete,
108108
)
109109

110110
if self.returning_delegate._returning:

tests/table/test_delete.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,18 @@ def test_validation(self):
4444
Band.delete().run_sync()
4545

4646
Band.delete(force=True).run_sync()
47+
48+
def test_delete_with_joins(self):
49+
"""
50+
Make sure delete works if the `where` clause specifies joins.
51+
"""
52+
53+
self.insert_rows()
54+
55+
Band.delete().where(Band.manager._.name == "Guido").run_sync()
56+
57+
response = (
58+
Band.count().where(Band.manager._.name == "Guido").run_sync()
59+
)
60+
61+
self.assertEqual(response, 0)

0 commit comments

Comments
 (0)