mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-07-30 09:16:07 -04:00
add transaction begin types
This commit is contained in:
6
src/network/cache/SqliteCache.zig
vendored
6
src/network/cache/SqliteCache.zig
vendored
@@ -126,7 +126,7 @@ pub fn get(self: *SqliteCache, arena: std.mem.Allocator, req: CacheRequest) !?Ca
|
||||
const conn = try self.pool.acquire();
|
||||
defer self.pool.release(conn);
|
||||
|
||||
try conn.begin();
|
||||
try conn.begin(.immediate);
|
||||
defer conn.rollback() catch {};
|
||||
|
||||
var entry = try conn.row(
|
||||
@@ -252,7 +252,7 @@ pub fn put(self: *SqliteCache, meta: CachedMetadata, body: []const u8) !void {
|
||||
const conn = try self.pool.acquire();
|
||||
defer self.pool.release(conn);
|
||||
|
||||
try conn.begin();
|
||||
try conn.begin(.immediate);
|
||||
defer conn.rollback() catch {};
|
||||
|
||||
try conn.exec("delete from metadata where url = $1", .{meta.url});
|
||||
@@ -327,7 +327,7 @@ pub fn renew(self: *SqliteCache, _: std.mem.Allocator, req: RenewResponse) !void
|
||||
const conn = try self.pool.acquire();
|
||||
defer self.pool.release(conn);
|
||||
|
||||
try conn.begin();
|
||||
try conn.begin(.immediate);
|
||||
defer conn.rollback() catch {};
|
||||
|
||||
const exists = try conn.row("select 1 from metadata where url = $1", .{req.url});
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user