Skip to content

Commit 377bd86

Browse files
committed
TR-2083: Suppress errors caused by rolling back a transaction, as sometimes SQLite errors (e.g. "disk full") can already trigger a rollback fo the transaction (see https://www.sqlite.org/lang_transaction.html).
1 parent 507ec1a commit 377bd86

File tree

1 file changed

+1
-10
lines changed

1 file changed

+1
-10
lines changed

Sources/SQLite/Core/Connection.swift

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -357,23 +357,14 @@ public final class Connection {
357357
try transaction(savepoint, block, "RELEASE \(savepoint)", or: "ROLLBACK TO \(savepoint)")
358358
}
359359

360-
fileprivate struct ErrorDuringRollback: Error {
361-
let originalError: Error
362-
let rollbackError: Error
363-
}
364-
365360
fileprivate func transaction(_ begin: String, _ block: () throws -> Void, _ commit: String, or rollback: String) throws {
366361
return try sync {
367362
try self.run(begin)
368363
do {
369364
try block()
370365
try self.run(commit)
371366
} catch {
372-
do {
373-
try self.run(rollback)
374-
} catch let rollbackError {
375-
throw ErrorDuringRollback(originalError: error, rollbackError: rollbackError)
376-
}
367+
_ = try? self.run(rollback)
377368
throw error
378369
}
379370
}

0 commit comments

Comments
 (0)