单个数据库页的字节缓冲, 提供大端整数写入与 B 树页组装能力。
PageBuffer
01 Syntax
Microsoft.VisualBasic.Data.IO.ManagedSqlite.Writer.Internal.PageBuffer
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| BuildBTreePage | 1 | 组装一个表 B 树页: 页头 + cell 指针数组(按 cell 顺序) + 自可用区末尾向下排列的 cell 内容。 |
03 Properties
| Name | Overloads | Summary |
|---|---|---|
| Data | 1 | 底层的页字节缓冲(长度为 PageSize) |
04 Fields
| Name | Overloads | Summary |
|---|---|---|
| CellPointerSize | 1 | 一个 cell 指针占用 2 个字节 |
| LeafHeaderSize | 1 | 表叶页(0x0D)的页头长度 |
| InteriorHeaderSize | 1 | 表内部页(0x05)的页头长度(8 字节 + 4 字节最右子页指针) |
| Page1ContentOffset | 1 | 第 1 页起始处的数据库文件头长度(仅第 1 页需要偏移) |
05 Members
BuildBTreePage(
Int32, Byte, IList(Of Byte()), Int64, Int32, Int32)组装一个表 B 树页: 页头 + cell 指针数组(按 cell 顺序) + 自可用区末尾向下排列的 cell 内容。
Parameters
| Name | Type | Description |
|---|---|---|
pageSize | Int32 | 页大小 |
pageType | Byte | 页类型(0x05 内部表页 / 0x0D 表叶页) |
cells | IList(Of Byte()) | 按 key(rowid)升序排列的 cell 字节 |
rightMostPointer | Int64 | 内部页的最右子页号, 叶页忽略 |
baseOffset | Int32 | 页头起始偏移(第 1 页为 100, 其余为 0) |
usableSize | Int32 | 可用区大小(页大小扣除预留空间), 传 0 表示等于页大小 |
Data
底层的页字节缓冲(长度为 PageSize)
CellPointerSize
一个 cell 指针占用 2 个字节
LeafHeaderSize
表叶页(0x0D)的页头长度
InteriorHeaderSize
表内部页(0x05)的页头长度(8 字节 + 4 字节最右子页指针)
Page1ContentOffset
第 1 页起始处的数据库文件头长度(仅第 1 页需要偏移)