Skip to documentation
SLOP

tiny.smg.storage.database.edits

Reference tiny.smg storage database edits

Defined in storage.database.

API (1)

Actions

Public operations.

No direct callersNo direct callsstorage.databaseedits
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Called byCallsNo direct callsconceptspublishtest; no linktools.smg.src.storage.database.lifecycletest: smg database rebuilds unreadabl...test; no linktools.smg.src.storage.database.lifecycletest: smg database round-trips nodes ...test; no linktools.smg.src.storage.database.lifecycletest: smg database tolerates empty gr...test; no linktools.smg.src.storage.database.lifecycletest: smg database updates and delete...+4 morestorage.database.editsapply
Static calls · unresolved targets: 0 · external targets: 16.

Source: tools/smg/src/storage/database/edits.zig

zig
const sql = @import("sql");const storage = @import("../root.zig");const database = @import("root.zig");const rows = storage.rows;pub fn apply(opened: *database.Database, edits: rows.GraphEdits) database.Error!void {    if (edits.isEmpty()) return;    var node_session: ?sql.RelationSession = null;    defer if (node_session) |*session| session.deinit();    if (edits.node_puts.len != 0 or edits.node_deletes.len != 0) {        var session = try sql.RelationSession.open(opened.allocator, &opened.connection.catalog, rows.nodes_relation);        errdefer session.deinit();        for (edits.node_puts) |put| try rows.putNodeRow(opened.allocator, &session, put.rowid, put.node);        for (edits.node_deletes) |rowid| try session.delete(rowid);        node_session = session;    }    var edge_session: ?sql.RelationSession = null;    defer if (edge_session) |*session| session.deinit();    if (edits.edge_puts.len != 0 or edits.edge_deletes.len != 0) {        var session = try sql.RelationSession.open(opened.allocator, &opened.connection.catalog, rows.edges_relation);        errdefer session.deinit();        for (edits.edge_puts) |put| try rows.putEdgeRow(opened.allocator, &session, put.rowid, put.edge);        for (edits.edge_deletes) |rowid| try session.delete(rowid);        edge_session = session;    }    var concept_session: ?sql.RelationSession = null;    defer if (concept_session) |*session| session.deinit();    if (edits.concept_document_puts.len != 0 or edits.concept_document_deletes.len != 0) {        var session = try sql.RelationSession.open(opened.allocator, &opened.connection.catalog, rows.concept_documents_relation);        errdefer session.deinit();        for (edits.concept_document_deletes) |rowid| try session.delete(rowid);        for (edits.concept_document_puts) |put| try rows.putConceptDocumentRow(&session, put);        concept_session = session;    }    var limits = sql.DatabaseWrite.Limits{        .relations = 0,        .edits = 0,        .payload_bytes = 0,        .assignments = 0,    };    if (node_session) |*session| limits = try limits.combine(try session.stagingLimits());    if (edge_session) |*session| limits = try limits.combine(try session.stagingLimits());    if (concept_session) |*session| limits = try limits.combine(try session.stagingLimits());    var workspace = try sql.DatabaseWrite.Workspace.allocate(        opened.allocator,        limits,    );    defer workspace.deallocate(opened.allocator);    var write = try opened.connection.beginWrite(&workspace, opened.allocator, .{        .limits = limits,        .durability = .buffered,    });    var write_live = true;    errdefer if (write_live) write.deinit();    if (node_session) |*session| {        try write.stageRelation(session);        node_session = null;    }    if (edge_session) |*session| {        try write.stageRelation(session);        edge_session = null;    }    if (concept_session) |*session| {        try write.stageRelation(session);        concept_session = null;    }    var flush = try write.flush();    write_live = false;    flush.deinit();}

Source: tools/smg/src/storage/database/root.zig:1

zig
pub const edits = @import("edits.zig");

Complete caller list for storage.database.edits.apply

9 direct callers.

Audit

Definitions2
Public names2
Members0
Version26.7.0
Revisiondaab053ee433