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