tiny.sql.DatabaseRoot
Defined in version.
API (11)
Actions
Public operations.
Fields and members
Public fields and members.
Source
Source: lib/sql/src/version.zig:313
zig
pub const DatabaseRoot = struct { allocator: ?Allocator = null, format: u32 = format_version, feature: u32 = 0, entries: []const RelationEntry = &.{}, conflicts: Hash, hash: Hash, pub fn init(entries: []const RelationEntry, conflicts: ConflictRoot) DatabaseRoot { var builder = Builder.init("sql.database"); builder.writeU32(format_version); builder.writeU32(0); builder.hash(conflicts.hash); builder.writeU64(entries.len); for (entries) |entry| { builder.bytes(entry.name); builder.hash(entry.hash); } return .{ .entries = entries, .conflicts = conflicts.hash, .hash = builder.finish(), }; } pub fn initSorted(allocator: Allocator, entries: []const RelationEntry, conflicts: ConflictRoot) Allocator.Error!DatabaseRoot { const sorted = try allocator.alloc(RelationEntry, entries.len); var copied: usize = 0; errdefer { for (sorted[0..copied]) |entry| allocator.free(entry.name); allocator.free(sorted); } for (entries, sorted) |entry, *target| { target.* = .{ .name = try allocator.dupe(u8, entry.name), .hash = entry.hash, }; copied += 1; } std.mem.sort(RelationEntry, sorted, {}, relationEntryLessThan); var root = init(sorted, conflicts); root.allocator = allocator; return root; } pub fn clone(self: *const DatabaseRoot, allocator: Allocator) Allocator.Error!DatabaseRoot { return try self.withConflicts(allocator, self.conflicts); } pub fn withConflicts( self: *const DatabaseRoot, allocator: Allocator, conflicts: Hash, ) Allocator.Error!DatabaseRoot { return try initSorted(allocator, self.entries, .{ .hash = conflicts }); } pub fn deinit(self: *DatabaseRoot) void { if (self.allocator) |allocator| { for (self.entries) |entry| allocator.free(entry.name); allocator.free(self.entries); } self.* = undefined; }};Source: lib/sql/src/root.zig:278
zig
pub const DatabaseRoot = version.DatabaseRoot;Complete caller list for DatabaseRoot.init
9 direct callers.
lib.sql.src.connection.DatabaseMaterialization.validateValue[function] — private source atlib/sql/src/connection.zig:928in nearest public ownertiny.sql.connectiontiny.sql.history.identity.each[function] atlib/sql/src/history/identity.zig:53lib.sql.src.history.refs.databaseRootIdentity[function] — private source atlib/sql/src/history/refs.zig:778in nearest public ownertiny.sql.history.refslib.sql.src.history.refs.test_refs_advance_rejects_a_hash-valid_malformed_non-ref_suffix[function] — test source atlib/sql/src/history/refs.zig:992in nearest public ownertiny.sql.history.refslib.sql.src.history.refs.test_refs_advance_rejects_a_ref_before_its_target_commit[function] — test source atlib/sql/src/history/refs.zig:931in nearest public ownertiny.sql.history.refslib.sql.src.history.refs.test_refs_advance_resolves_stale_suffix_and_pre-boundary_targets[function] — test source atlib/sql/src/history/refs.zig:871in nearest public ownertiny.sql.history.refslib.sql.src.lifecycle.test_lifecycle_moved_history_preserves_stale_refs_before_retry_publication[function] — test source atlib/sql/src/lifecycle.zig:1570in nearest public ownertiny.sql.lifecyclelib.sql.src.version.test_database_root_hash_depends_on_conflict_root[function] — test source atlib/sql/src/version.zig:1506in nearest public ownertiny.sql.versionlib.sql.src.version.test_database_root_hash_depends_on_relation_root_hashes_and_names[function] — test source atlib/sql/src/version.zig:1462in nearest public ownertiny.sql.version
Complete caller list for DatabaseRoot.initSorted
17 direct callers.
lib.sql.src.blame.snapshotCommit[function] — private source atlib/sql/src/blame.zig:248in nearest public ownertiny.sql.blamelib.sql.src.connection.Connection.replaceConflictRoot[method] — private source atlib/sql/src/connection.zig:610in nearest public ownertiny.sql.connectionlib.sql.src.history.pack.importDatabaseRootPayload[method] — private source atlib/sql/src/history/pack.zig:193in nearest public ownerlib.sql.src.history.packlib.sql.src.history.record.readDatabaseRootValue[function] — private source atlib/sql/src/history/record.zig:358in nearest public ownerlib.sql.src.history.recordlib.sql.src.history.recover.applyDatabaseRootPayload[method] — private source atlib/sql/src/history/recover.zig:312in nearest public ownerlib.sql.src.history.recoverlib.sql.src.history.resolver.test_history_resolver_typed_keys_agree_with_replay_across_object_kinds[function] — test source atlib/sql/src/history/resolver.zig:364in nearest public ownertiny.sql.history.resolvertiny.sql.History.packRecordPresent[method] atlib/sql/src/history/store.zig:1192lib.sql.src.history.store.test_history_recovers_database_roots_by_commit[function] — test source atlib/sql/src/history/store.zig:3012in nearest public ownerlib.sql.src.history.storelib.sql.src.merge.test_database_merge_applies_clean_relation_edits_and_derives_root[function] — test source atlib/sql/src/merge.zig:1060in nearest public ownertiny.sql.mergelib.sql.src.merge.test_database_merge_matches_relation_names_and_preserves_independent_relation_set_changes[function] — test source atlib/sql/src/merge.zig:1249in nearest public ownertiny.sql.mergelib.sql.src.merge.test_database_merge_records_relation_topology_conflicts_under_database_root[function] — test source atlib/sql/src/merge.zig:1386in nearest public ownertiny.sql.mergelib.sql.src.merge.test_database_merge_supersedes_stale_slots_and_persists_complete_conflict_root[function] — test source atlib/sql/src/merge.zig:1151in nearest public ownertiny.sql.mergetiny.sql.version.databaseRoot[function] atlib/sql/src/version.zig:976lib.sql.src.version.databaseRootMaintainedFrom[function] — private source atlib/sql/src/version.zig:1023in nearest public ownertiny.sql.versiontiny.sql.version.databaseRootReplacingEntries[function] atlib/sql/src/version.zig:1054tiny.sql.version.databaseValueFromOwnedRelations[function] atlib/sql/src/version.zig:949lib.sql.src.version.test_database_root_sorted_hash_is_independent_of_relation_entry_order[function] — test source atlib/sql/src/version.zig:1486in nearest public ownertiny.sql.version
Audit
| Definitions | 6 |
|---|---|
| Public names | 12 |
| Members | 6 |
| Version | 26.7.0 |
| Revision | daab053ee433 |