SQL 语句数据结构
SQL 语句存储数据结构:
- MySQL 源码|1 - Query_block 和 Query_expression 的连接关系
- MySQL 源码|2 - 查询树与 Query_term 节点
- MySQL 源码|4 - Query_expression 类的基本变量和方法
- MySQL 源码|5 - Query_term 及其子类
- MySQL 源码|6 - Query_block 类的基本变量和方法
SQL 执行的核心结构体 LEX
:
词法解析
词法解析前置:文本扫描器(Lex_input_stream
)和 CHARSET_INFO
- MySQL 源码|12 - 词法解析:Lex_input_stream(状态存储器)的数据成员
- MySQL 源码|13 - 词法解析的状态存储器(Lex_input_stream)的主要数据成员与函数
- MySQL 源码|14 - 词法解析中的 CHARSET_INFO 结构体及衍生函数
词法解析:
- MySQL 源码|8 - 词法解析:lex_one_token 函数外层逻辑
- MySQL 源码|9 - 词法解析:自动机状态转移矩阵
- MySQL 源码|10 - 词法解析:状态及状态转移规则(1)
- MySQL 源码|11 - 词法解析:状态及状态转移规则(2)
- MySQL 源码|15 - 词法解析:状态及状态转移规则(3)
- MySQL 源码|16 - 词法解析:状态及状态转移规则(4)
- MySQL 源码|17 - 词法解析:状态及状态转移规则(5)
- MySQL 源码|18 - 词法解析:状态及状态转移规则(6)
- MySQL 源码|19 - 词法解析:状态及状态转移规则(7)
- MySQL 源码|21 - 词法解析:状态转移逻辑梳理
词法解析调用位置:
语法解析
探索语法解析位置:
- MySQL 源码|22 - SQLParser 类及其子类
- MySQL 源码|23 - 句法解析:ImplicitCommitParser 的解析方法
- MySQL 源码|24 - 句法解析:SplittingAllowedParser 解析器
- MySQL 源码|25 - 句法解析:StartTransactionParser 解析器
- MySQL 源码|26 - 句法解析:ShowWarningsParser 解析器
- MySQL 源码|27 - ImplicitCommitParser 解析器和 SplittingAllowedParser 解析器的调用位置
- MySQL 源码|28 - StartTransactionParser 解析器和 ShowWarningsParser 解析器的调用位置
- MySQL 源码|29 - 解析过程的 command 函数逻辑
Bison 基础语法:
词语 Token 清单:
语法解析:
MySQL 源码|35 - 语法解析:char 函数MySQL 源码|36 - 语法解析:current_user 函数与 user 函数- MySQL 源码|37 - 语法解析:聚集函数
- MySQL 源码|38 - 语法解析:窗口函数
- MySQL 源码|39 - 语法解析:ORDER BY 子句
- MySQL 源码|40 - 语法解析:GROUP BY 子句
- MySQL 源码|41 - 语法解析:标识符 IDENT
- MySQL 源码|42 - 语法解析:数值、时间型字面值
- MySQL 源码|43 - 语法解析:关键字函数
执行过程
执行过程 Processor 类:
附录
附录 1:类型别名
附录 2:探索过程记录