Skip to documentation
SLOP

tiny.sql.DatabaseWrite

Reference tiny.sql DatabaseWrite

Defined in tiny.sql.

API (20)

Actions

Public operations.

Types and contracts

Public types and contracts.

Fields and members

Public fields and members.

No direct callersNo direct callstiny.sqlDatabaseWrite
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Source: lib/sql/src/session/database.zig:483

zig
pub const DatabaseWrite = struct {    pub const Limits = staging.Limits;    pub const Capacity = staging.Capacity;    pub const Demand = staging.Storage.Demand;    pub const StagedEdits = staging.Storage.Iterator;    pub const Workspace = staging.Workspace;    session: *DatabaseSession,    generation: u64,    active: bool = true,    pub fn deinit(self: *DatabaseWrite) void {        self.discard();        self.* = undefined;    }    pub fn stageRelation(self: *DatabaseWrite, relation: *relation_session.RelationSession) DatabaseError!void {        std.debug.assert(self.active);        try self.session.stageRelation(&self.state().storage, relation);    }    pub fn ensure(self: *const DatabaseWrite, demand: Demand) DatabaseError!void {        std.debug.assert(self.active);        try self.stateConst().storage.ensure(demand);    }    pub fn stagedRelationRoot(self: *DatabaseWrite, name: []const u8) ?*const version.RelationRoot {        _ = self.state();        const staged = self.session.stagedRelation(name) orelse return null;        return &staged.root;    }    pub fn stagedRelationEdits(self: *DatabaseWrite, name: []const u8) ?StagedEdits {        std.debug.assert(self.active);        const relation_index = self.session.stagedRelationIndex(name) orelse return null;        return self.state().storage.iterator(relation_index);    }    pub fn stagePut(self: *DatabaseWrite, name: []const u8, rowid: i64, values: []const row.Value) DatabaseError!void {        const phase = trace.scope("session.database.stage_put");        defer phase.end();        std.debug.assert(self.active);        const relation_index = self.session.stagedRelationIndex(name) orelse return error.NoStagedRelation;        try self.state().storage.appendPut(relation_index, rowid, values);    }    pub fn stageUpdate(self: *DatabaseWrite, name: []const u8, rowid: i64, assignments: []const relation_mod.Edit.Assignment) DatabaseError!void {        const phase = trace.scope("session.database.stage_update");        defer phase.end();        std.debug.assert(self.active);        const relation_index = self.session.stagedRelationIndex(name) orelse return error.NoStagedRelation;        try self.state().storage.appendUpdate(relation_index, rowid, assignments);    }    pub fn stageDelete(self: *DatabaseWrite, name: []const u8, rowid: i64) DatabaseError!void {        const phase = trace.scope("session.database.stage_delete");        defer phase.end();        std.debug.assert(self.active);        const relation_index = self.session.stagedRelationIndex(name) orelse return error.NoStagedRelation;        try self.state().storage.appendDelete(relation_index, rowid);    }    pub fn flush(self: *DatabaseWrite) DatabaseError!DatabaseFlush {        std.debug.assert(self.active);        const active_write = self.state();        const flush_value = try self.session.flushStagedRelations(            active_write.flush_allocator,            active_write.options,            &active_write.storage,        );        active_write.workspace.release(&active_write.storage);        self.session.active_write = null;        self.active = false;        return flush_value;    }    pub fn flushRelation(self: *DatabaseWrite, relation: *relation_session.RelationSession) DatabaseError!relation_session.RelationFlush {        std.debug.assert(self.active);        try self.stageRelation(relation);        var flush_value = try self.flush();        defer flush_value.deinit();        return flush_value.onlyRelation();    }    pub fn pendingRelations(self: *const DatabaseWrite) usize {        _ = self.stateConst();        return self.session.pendingRelations();    }    pub fn discard(self: *DatabaseWrite) void {        if (!self.active) return;        if (self.session.active_write) |*active_write| {            if (active_write.generation == self.generation) {                self.session.discardStagedRelations();                self.session.discardWrite();            }        }        self.active = false;    }    fn state(self: *DatabaseWrite) *ActiveWrite {        std.debug.assert(self.active);        const active_write = &self.session.active_write.?;        std.debug.assert(active_write.generation == self.generation);        return active_write;    }    fn stateConst(self: *const DatabaseWrite) *const ActiveWrite {        std.debug.assert(self.active);        const active_write = &self.session.active_write.?;        std.debug.assert(active_write.generation == self.generation);        return active_write;    }};

Source: lib/sql/src/root.zig:167

zig
pub const DatabaseWrite = session.DatabaseWrite;
Called byCallsNo direct callersDatabaseWritediscardDatabaseWritedeinit
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsDatabaseWritedeinitDatabaseSessiondiscardStagedRelationsprivate sourcelib.sql.src.session.database.DatabaseSessiondiscardWriteDatabaseWritediscard
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callersprivate sourcelib.sql.src.session.database.DatabaseWritestateConstDatabaseWriteensure
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsDatabaseWriteflushRelationprivate sourcelib.sql.src.session.database.DatabaseSessionflushStagedRelationsprivate sourcelib.sql.src.session.database.DatabaseWritestateDatabaseWriteflush
Static calls · unresolved targets: 0 · external targets: 1.
Called byCallsNo direct callersDatabaseWriteflushDatabaseWritestageRelationDatabaseWriteflushRelation
Static calls · unresolved targets: 0 · external targets: 2.
Called byCallsNo direct callersDatabaseSessionpendingRelationsprivate sourcelib.sql.src.session.database.DatabaseWritestateConstDatabaseWritependingRelations
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callersprivate sourcelib.sql.src.session.database.DatabaseSessionstagedRelationIndexprivate sourcelib.sql.src.session.database.DatabaseWritestateDatabaseWritestageDelete
Static calls · unresolved targets: 0 · external targets: 2.
Called byCallsNo direct callersprivate sourcelib.sql.src.session.database.DatabaseSessionstagedRelationIndexprivate sourcelib.sql.src.session.database.DatabaseWritestateDatabaseWritestagePut
Static calls · unresolved targets: 0 · external targets: 2.
Called byCallsDatabaseWriteflushRelationprivate sourcelib.sql.src.session.database.DatabaseSessionstageRelationprivate sourcelib.sql.src.session.database.DatabaseWritestateDatabaseWritestageRelation
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callersprivate sourcelib.sql.src.session.database.DatabaseSessionstagedRelationIndexprivate sourcelib.sql.src.session.database.DatabaseWritestateDatabaseWritestageUpdate
Static calls · unresolved targets: 0 · external targets: 2.
Called byCallsNo direct callersprivate sourcelib.sql.src.session.database.DatabaseSessionstagedRelationIndexprivate sourcelib.sql.src.session.database.DatabaseWritestateDatabaseWritestagedRelationEdits
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callersprivate sourcelib.sql.src.session.database.DatabaseSessionstagedRelationprivate sourcelib.sql.src.session.database.DatabaseWritestateDatabaseWritestagedRelationRoot
Static calls · unresolved targets: 0 · external targets: 0.

Also reachable as

session.DatabaseWrite.

Audit

Definitions18
Public names36
Members3
Version26.7.0
Revisiondaab053ee433