tiny.sql.history
Defined in tiny.sql.
API (35)
Actions
Public operations.
FastForwardUpdate.abortFastForwardUpdate.commitFastForwardUpdate.completeRelationKeysView.deinitRelationRowsWriter.appendRelationRowsWriter.deinitRelationRowsWriter.finishWriteBatch.deinitWriteBatch.finishfreeRefList
Types and contracts
Public types and contracts.
ChunkSpanConflictArtifactsConflictEntriesDatabaseRootViewErrorFastForwardDecisionFastForwardRecoveryFastForwardUpdateHistoryIncrementalBaseOptionsPackRecordKindRecoveryRecoveryPolicyRelationKeysViewRelationRowsWriterTruncationWriteBatch
Namespaces
Public namespaces.
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
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,};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);}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
| Definitions | 22 |
|---|---|
| Public names | 22 |
| Members | 38 |
| Version | 26.7.0 |
| Revision | daab053ee433 |