Skip to documentation
SLOP

tiny.sql.history

Reference tiny.sql history

Defined in tiny.sql.

API (35)

Actions

Public operations.

Types and contracts

Public types and contracts.

Namespaces

Public namespaces.

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

Source

Source: lib/sql/src/history/record.zig:54

zig
pub const ChunkSpan = struct {    first: i64,    last: i64,};

Source: lib/sql/src/history/record.zig:12

zig
pub const PackRecordKind = enum(u32) {    row_chunk = 1,    chunk_index_page = 2,    tree_node = 3,    relation_rows = 4,    relation_root = 5,    database_root = 6,    conflict = 7,    conflict_root = 8,};

Source: lib/sql/src/history/store.zig:109

zig
pub const DatabaseRootView = struct {    conflicts: version.Hash,    entries: []const version.RelationEntry,};

Source: lib/sql/src/history/store.zig:73

zig
pub const FastForwardDecision = enum {    pending,    baseline,    target,};

Source: lib/sql/src/history/store.zig:79

zig
pub const FastForwardRecovery = struct {    id: version.Hash,    name: []const u8,    expected: version.Hash,    target: version.Hash,    decision: FastForwardDecision = .pending,};

Source: lib/sql/src/history/store.zig:87

zig
pub const FastForwardUpdate = struct {    history: *History,    id: version.Hash,    pub fn commit(self: *FastForwardUpdate) Error!void {        try self.history.decideFastForward(self.id, .target);    }    pub fn abort(self: *FastForwardUpdate) Error!void {        try self.history.decideFastForward(self.id, .baseline);    }    pub fn complete(self: *FastForwardUpdate) Error!void {        try self.history.completeFastForward(self.id);    }};

Source: lib/sql/src/history/store.zig:1769

zig
pub const IncrementalBase = struct {    root: version.Hash,    edited: []const i64,};

Source: lib/sql/src/history/store.zig:114

zig
pub const RelationKeysView = struct {    allocator: Allocator,    owned: ?[]?version.Hash = null,    table_key: ?version.Hash,    index_keys: []const ?version.Hash,    pub fn deinit(self: *RelationKeysView) void {        if (self.owned) |owned| self.allocator.free(owned);        self.* = undefined;    }};

Source: lib/sql/src/history/store.zig:1543

zig
pub const RelationRowsWriter = struct {    history: *History,    root: version.Hash,    boundary: ?i64,    previous: ?i64 = null,    chunker: chunk_mod.Chunker = .{},    chunks: std.ArrayList(version.Hash) = .empty,    spans: std.ArrayList(record_mod.ChunkSpan) = .empty,    finished: bool = false,    pub fn append(self: *RelationRowsWriter, rowid: i64, bytes: []const u8) Error!void {        std.debug.assert(!self.finished);        if (self.boundary) |boundary| {            if (rowid <= boundary) return error.InvalidHistory;        }        if (self.previous) |previous| {            if (rowid <= previous) return error.InvalidHistory;        }        self.previous = rowid;        if (try self.chunker.append(self.history.allocator, rowid, bytes)) try self.emit();    }    pub fn finish(self: *RelationRowsWriter) Error!void {        std.debug.assert(!self.finished);        if (self.chunker.pending() != 0) try self.emit();        try self.history.finishRelationRows(self.root, self.chunks.items, self.spans.items);        self.finished = true;    }    pub fn deinit(self: *RelationRowsWriter) void {        const allocator = self.history.allocator;        self.chunker.deinit(allocator);        self.chunks.deinit(allocator);        self.spans.deinit(allocator);        self.* = undefined;    }    fn emit(self: *RelationRowsWriter) Error!void {        var rows_scratch: [chunk_mod.max_rows]version.RelationRow = undefined;        const rows = self.chunker.view(&rows_scratch);        std.debug.assert(rows.len > 0);        const digest = chunk_mod.digest(rows);        const allocator = self.history.allocator;        try self.chunks.ensureUnusedCapacity(allocator, 1);        try self.spans.ensureUnusedCapacity(allocator, 1);        try self.history.putRowChunk(digest, rows);        self.chunks.appendAssumeCapacity(digest);        self.spans.appendAssumeCapacity(.{ .first = rows[0].rowid, .last = rows[rows.len - 1].rowid });        self.chunker.reset();    }};

Source: lib/sql/src/history/store.zig:1627

zig
pub const WriteBatch = struct {    history: *History,    active: bool = true,    pub fn finish(self: *WriteBatch) Error!void {        if (!self.active) return;        try self.history.ensureUsable();        std.debug.assert(self.history.write_batch_depth > 0);        if (self.history.write_batch_depth > 1) {            self.history.write_batch_depth -= 1;            self.active = false;            return;        }        try self.history.flushPendingWrite();        self.history.write_batch_depth = 0;        errdefer self.history.write_batch_depth = 1;        try self.history.flushSync();        self.active = false;    }    pub fn deinit(self: *WriteBatch) void {        if (!self.active) return;        std.debug.assert(self.history.write_batch_depth > 0);        self.history.write_batch_depth -= 1;        self.active = false;    }};

Source: lib/sql/src/history/store.zig:23

zig
pub const Error = Allocator.Error || branch.Error || std.Io.File.OpenError || std.Io.File.StatError || std.Io.File.ReadPositionalError || std.Io.File.WritePositionalError || std.Io.File.SetLengthError || std.Io.File.SyncError || std.Io.Dir.ReadFileAllocError || error{    Interrupted,    InvalidHistory,    TruncatedHistory,    HistoryNotFound,    DatabaseRootNotFound,    RelationRootNotFound,    RelationRowsNotFound,    RefExists,    RefNotFound,    RefChanged,    RecoveryRequired,    ReadOnly,    ConflictRootNotFound,    ConflictArtifactNotFound,};
Called byCallsNo direct callersprivate sourcelib.sql.src.history.store.HistorydecideFastForwardhistory.FastForwardUpdateabort
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callersprivate sourcelib.sql.src.history.store.HistorydecideFastForwardhistory.FastForwardUpdatecommit
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callersprivate sourcelib.sql.src.history.store.HistorycompleteFastForwardhistory.FastForwardUpdatecomplete
Static calls · unresolved targets: 0 · external targets: 0.
Called byCallsNo direct callersprivate sourcelib.sql.src.history.store.RelationRowsWriteremithistory.RelationRowsWriterappend
Static calls · unresolved targets: 1 · external targets: 0.
Called byCallsNo direct callersHistoryfinishRelationRowsprivate sourcelib.sql.src.history.store.RelationRowsWriteremithistory.RelationRowsWriterfinish
Static calls · unresolved targets: 0 · external targets: 1.
Called byCallsNo direct callersprivate sourcelib.sql.src.history.store.HistoryensureUsableprivate sourcelib.sql.src.history.store.HistoryflushPendingWriteHistoryflushSynchistory.WriteBatchfinish
Static calls · unresolved targets: 0 · external targets: 0.

Source: lib/sql/src/history/store.zig:104

zig
pub fn freeRefList(allocator: Allocator, refs: []version.Ref) void {    for (refs) |ref_value| allocator.free(ref_value.name);    if (refs.len != 0) allocator.free(refs);}
Called byCallsNo direct callsHistoryrefListtest sourcelib.sql.src.history.storetest: history deletes refs durablyhistoryfreeRefList
Static calls · unresolved targets: 0 · external targets: 1.

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

zig
const record_mod = @import("record.zig");const conflict_mod = @import("conflict.zig");const refs_mod = @import("refs.zig");const store_mod = @import("store.zig");pub const identity = @import("identity.zig");pub const resolver = @import("resolver.zig");pub const verification = @import("verify.zig");pub const segment = @import("segment/root.zig");pub const instrumentation = @import("instrumentation.zig");pub const PackRecordKind = record_mod.PackRecordKind;pub const ChunkSpan = record_mod.ChunkSpan;pub const ConflictEntries = conflict_mod.ConflictEntries;pub const ConflictArtifacts = conflict_mod.ConflictArtifacts;pub const Error = store_mod.Error;pub const Options = store_mod.Options;pub const RecoveryPolicy = store_mod.RecoveryPolicy;pub const Recovery = store_mod.Recovery;pub const Truncation = store_mod.Truncation;pub const freeRefList = store_mod.freeRefList;pub const DatabaseRootView = store_mod.DatabaseRootView;pub const RelationKeysView = store_mod.RelationKeysView;pub const History = store_mod.History;pub const RelationRowsWriter = store_mod.RelationRowsWriter;pub const WriteBatch = store_mod.WriteBatch;pub const FastForwardDecision = store_mod.FastForwardDecision;pub const FastForwardRecovery = store_mod.FastForwardRecovery;pub const FastForwardUpdate = store_mod.FastForwardUpdate;pub const IncrementalBase = store_mod.IncrementalBase;pub const refs = refs_mod;pub const repair = @import("repair.zig");

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

zig
pub const history = @import("history/root.zig");

Audit

Definitions22
Public names22
Members38
Version26.7.0
Revisiondaab053ee433