微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用nom解析SQLite B-Tree-Page

如何解决用nom解析SQLite B-Tree-Page

我试图用标称值解析sqlite BTree页面https://www.sqlite.org/fileformat2.html#btree)。

Nom可以很好地解析两个标头(数据库文件标头和btree标头)以及单元指针数组。我现在停留在如何解析单个单元格上。

据我所知,nom只是线性遍历输入,但是我更需要的是随机访问:从单元格指针数组中获取一个值,跳转页面中的该位置,然后解析它。

这是有效的方法吗?我是否应该将其余的输入内容包装在光标所在的标头之后,并随机访问单元格指针的位置?

我的另一个想法是按升序对单元指针数组进行排序,直到下一个单元开始之前,它只占用尽可能多的字节。这里的问题是每个单元的有效载荷长度变量都包含溢出。我在如何识别该页面上单元有效负载的确切长度方面遇到问题,因为一个空闲块可以跟随一个单元。为此,在开始解析单元块之前,我需要首先解析所有空闲块页面链接列表,以便检索所有空闲块的位置和长度。但是后来我又回到了随机访问的位置。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。