构建简单的SQL查询评估器

2025-02-19
构建简单的SQL查询评估器

本文介绍了如何构建一个简单的SQL查询评估器,它能够处理基本的SELECT语句。作者首先创建了一个简单的测试数据库,然后对之前的SQLite文件格式解析器和SQL解析器进行了改进,使其能够处理更复杂的查询。核心部分在于`Operator`和`Planner`的实现,`Operator`负责执行数据库操作,`Planner`负责将解析后的SQL语句转换成`Operator`。目前该评估器还不支持过滤、排序、分组和连接等功能,但为后续添加这些功能奠定了基础。文章还详细介绍了Pager的改进,使其支持并发访问。

阅读更多

Rust 实现 SQLite 解析器:支持 CREATE TABLE 语句

2025-02-04
Rust 实现 SQLite 解析器:支持 CREATE TABLE 语句

本文介绍了如何扩展一个用 Rust 编写的 SQLite 解析器,使其支持 CREATE TABLE 语句。通过解析 SQLite 数据库的模式表,程序能够提取表名、根页号以及各列的名称和类型信息。文章详细讲解了词法分析、语法分析以及如何构建抽象语法树 (AST) 的过程,并展示了如何将提取的元数据存储在数据库结构中,最终实现了一个功能更完善的 SQLite 解析器。

阅读更多
开发

自己动手构建 SQLite,第一部分:列出数据表

2024-08-18
自己动手构建 SQLite,第一部分:列出数据表

本文是构建兼容 SQLite 数据库系列文章的第一篇,重点介绍了如何实现一个简单的 `tables` 命令来列出数据库中的所有数据表。文章首先介绍了 SQLite 文件格式,包括数据库头、页结构以及页类型等基本概念。接着讲解了如何解析 SQLite 数据库文件,包括读取数据库头信息、解析表 B 树叶节点页以及解码记录等步骤。最后,文章以 `sqlite_master` 表为例,演示了如何获取数据库中的所有表名。

阅读更多
未分类