SQL 语句的处理过程:
词法分析,语法分析,语义分析,构造执行树,生成执行计划,计划的执行。
Mysql 并没有使用lex来实现词法分析,但是语法分析却用了yacc。
与之对比的Sqlite3数据库,SQLite的词法分析器是手工写的,语法分析器由Lemon生成。
要学习Mysql的分析器,则需要具备lex和yacc的相关知识。
(一)词法分析
在sql/lex.h中定义了MySQL关键字和函数关键字,用两个数组存储。
关键字 static SYMBOL symbols[]
函数 static SYMBOL sql_functions[]
本文深入探讨SQL语句的处理流程,对比Mysql和Sqlite3数据库在词法分析、语法分析等方面的差异,重点介绍了Mysql分析器的实现方式及其关键组件。
1875

被折叠的 条评论
为什么被折叠?



