tiny.sql.OverflowPage
Defined in page.
API (7)
Actions
Public operations.
Fields and members
Public fields and members.
Source
Source: lib/sql/src/page.zig:971
zig
pub const Overflow = struct { bytes: *[size]u8, pub fn init(bytes: *[size]u8, page_id: u64, next_page: u32, fragment: []const u8) Error!Overflow { if (fragment.len == 0 or fragment.len > overflow_capacity) return error.ValueTooLarge; if (next_page != 0 and @as(u64, next_page) == page_id) return error.InvalidPageId; var overflow = Overflow{ .bytes = bytes }; @memset(overflow.bytes, 0); @memcpy(overflow.bytes[magic_offset..][0..magic.len], magic[0..]); overflow.bytes[version_offset] = format_version; overflow.bytes[kind_offset] = overflow_kind; overflow.writeU16(flags_offset, 0); overflow.writeU64(id_offset, page_id); overflow.writeU64(generation_offset, 0); overflow.writeU32(overflow_next_offset, next_page); overflow.writeU16(overflow_used_offset, @intCast(fragment.len)); overflow.writeU16(overflow_reserved_offset, 0); @memcpy(overflow.bytes[header_size..][0..fragment.len], fragment); return overflow; } pub fn load(bytes: *[size]u8) Error!Overflow { const overflow = Overflow{ .bytes = bytes }; try overflow.validate(); return overflow; } pub fn id(self: *const Overflow) u64 { return self.readU64(id_offset); } pub fn next(self: *const Overflow) u32 { return self.readU32(overflow_next_offset); } pub fn used(self: *const Overflow) usize { return self.readU16(overflow_used_offset); } pub fn content(self: *const Overflow) []const u8 { return self.bytes[header_size..][0..self.used()]; } fn validate(self: *const Overflow) Error!void { if (!std.mem.eql(u8, self.bytes[magic_offset..][0..magic.len], magic[0..])) return error.InvalidPage; if (self.bytes[version_offset] != format_version) return error.InvalidPage; if (self.bytes[kind_offset] != overflow_kind) return error.InvalidPage; if (self.readU16(flags_offset) != 0) return error.InvalidPage; if (self.readU16(overflow_reserved_offset) != 0) return error.InvalidPage; if (self.used() == 0 or self.used() > overflow_capacity) return error.InvalidPage; if (self.next() != 0 and @as(u64, self.next()) == self.id()) return error.InvalidPage; } fn readU16(self: *const Overflow, offset: usize) u16 { return std.mem.readInt(u16, self.bytes[offset..][0..2], .big); } fn readU32(self: *const Overflow, offset: usize) u32 { return std.mem.readInt(u32, self.bytes[offset..][0..4], .big); } fn readU64(self: *const Overflow, offset: usize) u64 { return std.mem.readInt(u64, self.bytes[offset..][0..8], .big); } fn writeU16(self: *Overflow, offset: usize, value: u16) void { std.mem.writeInt(u16, self.bytes[offset..][0..2], value, .big); } fn writeU32(self: *Overflow, offset: usize, value: u32) void { std.mem.writeInt(u32, self.bytes[offset..][0..4], value, .big); } fn writeU64(self: *Overflow, offset: usize, value: u64) void { std.mem.writeInt(u64, self.bytes[offset..][0..8], value, .big); }};Source: lib/sql/src/root.zig:59
zig
pub const OverflowPage = page.Overflow;Complete caller list for OverflowPage.load
8 direct callers.
lib.sql.src.page.test_overflow_page_stores_a_linked_content_fragment[function] — test source atlib/sql/src/page.zig:1769in nearest public ownertiny.sql.pagelib.sql.src.tree.HashBuilder.overflowValue[method] — private source atlib/sql/src/tree.zig:1942in nearest public ownertiny.sql.treelib.sql.src.tree.Tree.collectOverflowPages[method] — private source atlib/sql/src/tree.zig:1522in nearest public ownertiny.sql.treelib.sql.src.tree.Tree.entryStateFromRecord[method] — private source atlib/sql/src/tree.zig:1026in nearest public ownertiny.sql.treelib.sql.src.tree.Write.refillFreeList[method] — private source atlib/sql/src/tree.zig:546in nearest public ownertiny.sql.treelib.sql.src.tree.latticeEntryFromRecord[function] — private source atlib/sql/src/tree.zig:2175in nearest public ownertiny.sql.treelib.sql.src.tree.readOverflowValueInto[function] — private source atlib/sql/src/tree.zig:2154in nearest public ownertiny.sql.treelib.sql.src.tree.summarizeOverflowValue[function] — private source atlib/sql/src/tree.zig:2096in nearest public ownertiny.sql.tree
Audit
| Definitions | 7 |
|---|---|
| Public names | 14 |
| Members | 1 |
| Version | 26.7.0 |
| Revision | daab053ee433 |