MySQL解析器

MySQL解析器由两部分组成:

1.词法分析

扫描字符流,根据构词规则识别单个单词。

MySQL使用Flex来生成词法扫描程序

在sql/lex.h中定义了MySQL关键字和函数关键字,用两个数组存储

2.语法分析

在词法分析的基础上将单词序列组成语法短语,最后生成语法树,提交给优化器

语法分析器使用Bison,在sql/sql_yacc.yy中定义了语法规则。

根据关系代数理论生成语法树

3.在sql目录下,有许多以sql_开头命名的文件,用于接受语法树,执行不同的查询,如sql_select.cc用于select查询

你可能感兴趣的:(mysql)