如何判断SQLite中是否有溢出页面?

时间:2019-02-11 17:06:52

标签: database sqlite

我正在按照文件格式规范中的描述遍历SQLite数据库文件,但是我并没有真正理解我们必须确定在单元头中是否需要指向溢出页面的指针的部分。如此处所述https://www.sqlite.org/fileformat.html 第1.6节,如果p

我现在正尝试在根页面上读取sqlite_master表,第一个单元格从字节3164开始。第一个varint解码为929,即有效负载的大小。信元头的大小为3个字节,包括有效负载的大小,因此总计为4096个字节。但是,如果我的p> 929,该怎么办?

根据给出的说明,任何小于(页面大小-保留空间-35)的有效负载都应在页面内。假设我的页面大小为4KB,保留的字节空间为0,那么X为4096-35 =4061。如果我的有效载荷大小为4000字节,且单元格开始处的偏移量为3164,会发生什么情况?还是使用SQLite设置页面无法实现这种情况?我只是有点困惑,因为该公式忽略了实际单元格如何在页面末尾开始,所以我们也应该不考虑公式中的偏移量吗?

0 个答案:

没有答案