mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-09-28 04:44:26 +02:00
delete_where() now commits inside a transaction, refs #815
This commit is contained in:
parent
2026087a72
commit
bf133b4825
2 changed files with 18 additions and 1 deletions
|
|
@ -2773,7 +2773,8 @@ class Table(Queryable):
|
||||||
sql = "delete from [{}]".format(self.name)
|
sql = "delete from [{}]".format(self.name)
|
||||||
if where is not None:
|
if where is not None:
|
||||||
sql += " where " + where
|
sql += " where " + where
|
||||||
self.db.execute(sql, where_args or [])
|
with self.db.conn:
|
||||||
|
self.db.execute(sql, where_args or [])
|
||||||
if analyze:
|
if analyze:
|
||||||
self.analyze()
|
self.analyze()
|
||||||
return self
|
return self
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
|
import sqlite_utils
|
||||||
|
|
||||||
|
|
||||||
def test_delete_rowid_table(fresh_db):
|
def test_delete_rowid_table(fresh_db):
|
||||||
table = fresh_db["table"]
|
table = fresh_db["table"]
|
||||||
table.insert({"foo": 1}).last_pk
|
table.insert({"foo": 1}).last_pk
|
||||||
|
|
@ -32,6 +35,19 @@ def test_delete_where_all(fresh_db):
|
||||||
assert table.count == 0
|
assert table.count == 0
|
||||||
|
|
||||||
|
|
||||||
|
def test_delete_where_commits(tmpdir):
|
||||||
|
path = str(tmpdir / "test.db")
|
||||||
|
db = sqlite_utils.Database(path)
|
||||||
|
db["table"].insert_all([{"id": i} for i in range(5)], pk="id")
|
||||||
|
db["table"].delete_where("id > ?", [2])
|
||||||
|
assert not db.conn.in_transaction
|
||||||
|
db.close()
|
||||||
|
|
||||||
|
reopened_db = sqlite_utils.Database(path)
|
||||||
|
assert [row["id"] for row in reopened_db["table"].rows] == [0, 1, 2]
|
||||||
|
reopened_db.close()
|
||||||
|
|
||||||
|
|
||||||
def test_delete_where_analyze(fresh_db):
|
def test_delete_where_analyze(fresh_db):
|
||||||
table = fresh_db["table"]
|
table = fresh_db["table"]
|
||||||
table.insert_all(({"id": i, "i": i} for i in range(10)), pk="id")
|
table.insert_all(({"id": i, "i": i} for i in range(10)), pk="id")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue