add transaction begin types

This commit is contained in:
Muki Kiboigo
2026-07-21 08:55:52 -07:00
parent b6752f7069
commit 918ebc87b5
2 changed files with 11 additions and 6 deletions

View File

@@ -65,7 +65,7 @@ pub const Migrations = struct {
return start;
}
try conn.begin();
try conn.begin(.immediate);
errdefer conn.rollback() catch {};
for (migrations[start..], start..) |migration, i| {
@@ -168,8 +168,13 @@ pub const Conn = struct {
return .{ .stmt = stmt.?, .conn = self.conn };
}
pub fn begin(self: Conn) !void {
try self.exec("begin", .{});
pub const BeginKind = enum { deferred, immediate, exclusive };
pub fn begin(self: Conn, kind: BeginKind) !void {
switch (kind) {
.deferred => try self.exec("begin deferred", .{}),
.immediate => try self.exec("begin immediate", .{}),
.exclusive => try self.exec("begin exclusive", .{}),
}
}
pub fn commit(self: Conn) !void {