KaiwuDB 解析器介绍
解析器是数据库系统的重要组成部分之一,主要的功能是将客户端输入的 SQL 语句分解为语法单元,然后将这些语法单元转化成数据库内部可识别的数据结构,最终生成数据库可以执行的计划。
KaiwuDB 的一条 SQL 执行的整个生命周期:
- 从客户端输入一个 SQL 指令(文本格式),数据库执行器无法直接执行该文本指令,会先通过词法解析和语法解析将文本指令生成数据库能识别的数据结构 AST;
- 语义解析对 AST 进行有效性校验,生成优化器需要的 Memo 数据结构;
- 通过优化器(包括 RBO、CBO)优化后选出一个最优的 Memo 结构;
- 经过逻辑计划构建,生成一个 Plan 数据结构;
- 通过物理计划构建,生成数据库可执行的数据结构 Physical Plan,最终执行返回结构。

KaiwuDB 的解析器在整个 SQL 生命周期所处的位置比较靠前,介于客户端和优化器之间,主要功能是将客户端发来的文本指令转化成数据库能识别的数据结构,最后转成优化器需要的数据结构,具体包括三部分:词法解析,语法解析,语义解析。
- 词法解析:从左到右逐个字符地读入文本,根据构词规则以及空格,将 SQL 文本切成词和符号;
- 语法解析:在词法分析的基础上将单词序列按照定义好的语法规则组合成各类语法短语,语法分析程序判断源程序在结构上是否正确,并构建出抽象语法树 AST;
- 语义解析:主要对获得的 AST 进行审查。
KaiwuDB 语义解析原理
在 KaiwuDB 语义解析阶段,会获取到对应 SQL 的 AST,通过解析完 AST 中需要解析的部分,比如下图 AST 中

本文详细介绍了KaiwuDB解析器在SQL执行过程中的角色,包括词法、语法和语义解析,以及表名和列名的具体解析方法。解析器将客户端文本指令转化为数据库可识别的结构,为后续优化器提供基础数据。
最低0.47元/天 解锁文章
43





