![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL源码
文章平均质量分 78
长行
这个作者很懒,什么都没留下…
展开
-
MySQL 源码|词法解析中的 CHARSET_INFO 结构体及衍生函数
对于 GB18030 字符集来说,需要 2 个字符才能判断多字节序列的长度,因此我们无法通过一个字节就判断它是否为一个多字节序列。这个数组用于快速判断一个字符是否为标识符、数字、特殊字符的一部分,还是 SQL 语句的其他组成部分。函数是用于检查提供的字符串是否是一个多字节字符序列的逻辑,如果该函数为。将以 ASCIII 编码 0 为截止符号的字符串转换为英文大写格式。将以 ASCIII 编码 0 为截止符号的字符串转换为英文大写格式。是否为标识符中的字符(英文字母、数字或下划线)。原创 2024-07-14 16:42:31 · 553 阅读 · 0 评论 -
MySQL 源码|词法解析的状态存储器(Lex_input_stream)的主要数据成员与函数
为 True),则将原始数据流中的 n 字符复制到预处理数据流中,并将这两个指针都向后移动 n 个字符。为 True),则将原始数据流中的 n 字符复制到预处理数据流中,并将这两个指针都向后移动 n 个字符。(指向已写入到 UTF-8 格式流对应的预处理数据流的位置的指针)时,直接提供需要复制到的结束位置的指针。调整当前 token 的开始位置,用于处理开头的空白字符的情况。为 True),则将该字符回显到指向预处理输入流中的当前位置的指针(为 True),则将指向预处理输入流中的当前位置的指针(原创 2024-07-13 23:14:41 · 891 阅读 · 0 评论 -
MySQL 源码|词法解析:Lex_input_stream(文本扫描器)的数据成员
源码位置:(版本 = MySQL 8.0.37)原创 2024-07-13 12:33:45 · 524 阅读 · 0 评论 -
MySQL 源码|词法解析:状态及状态转移规则(2)
源码位置:(版本 = MySQL 8.0.37)原创 2024-07-12 08:43:05 · 364 阅读 · 0 评论 -
MySQL 源码|词法解析:状态及状态转移规则(1)
中的初始化状态转移规则进行转移。如果是空格,则继续匹配不改变状态,直到遇到正式的。源码位置:(版本 = MySQL 8.0.37)状态的处理中,都通过循环跳过了会切换到。下面我们从默认状态开始整理各个状态。因此可知,词法解析的默认状态就是。并在外层循环中继续处理当前。状态单独出现不会发生。原创 2024-07-11 09:03:27 · 328 阅读 · 0 评论 -
MySQL 源码|词法解析:自动机状态转移矩阵
该状态转移矩阵主要用于在开始匹配 token 时,根据当前字符获取状态。|为十六进制值、二进制值和 unicode 字符串赋状态值。源码位置:(版本 = MySQL 8.0.37)|将结构体中的每个枚举值赋对应的状态值。函数中,初始化了状态转移矩阵。|为一些特殊的字符赋状态值。原创 2024-07-10 08:52:30 · 425 阅读 · 0 评论 -
MySQL 源码|词法分析:lex_one_token 函数外层逻辑
将原始输入流、预处理输入流中当前 token 的开始、结束位置的指针均设置为当前指针。|启动一个无限循环,在其中根据当前状态执行逻辑,若当前 token 匹配完成则直接。源码位置:(版本 = MySQL 8.0.37),该类型用于存储此法解析状态。原创 2024-07-09 09:02:49 · 312 阅读 · 0 评论 -
MySQL 源码|LEX 结构体
LEX。原创 2024-07-09 08:00:10 · 475 阅读 · 0 评论 -
MySQL 源码|Query_block 类的基本变量和方法
(版本 = MySQL 8.0.37)(版本 = MySQL 8.0.37)类中,除实现了父类的纯虚函数以及与。,时查询树中代表叶子节点的特殊类型。选项的函数,在修改时会同步更新。子句中查询的表列表存储在。子句中的排序逻辑存储在。定义了设置、添加、移除。关键字的信息就存储在。原创 2024-07-01 08:42:22 · 348 阅读 · 0 评论 -
MySQL 源码|Query_term 及其子类
Query_term。原创 2024-06-11 08:21:40 · 445 阅读 · 0 评论 -
MySQL 源码|Query_expression 类的基本变量和方法
(版本 = MySQL 8.0.37)(版本 = MySQL 8.0.37)类表示查询表达式(query expression),其中包含由多个UNIONINTERSECTEXCEPT等集合操作合并的一个或多个查询块。原创 2024-06-10 16:07:57 · 451 阅读 · 0 评论 -
MySQL 源码|附录 1:类型别名
(版本 = MySQL 8.0.37)原创 2024-06-10 11:17:52 · 210 阅读 · 0 评论 -
MySQL 源码|查询树与 Query_term 节点
作为叶子节点时,它既是查询规则(query specification),也是查询的表构造器(table constructors of the query)。(版本 = MySQL 8.0.37)节点间的嵌套关系,构成了查询树结构。的方式,每个非叶子节点都有其对应的。作为非叶子节点时,它是一种实现。指针相互连接形成单向链表,作为。类是查询树结构中的节点,通过。方法返回一个指向它自身的指针。成员,同时也包含一个指向。这 4 个类都包含一个。原创 2024-06-04 08:52:05 · 342 阅读 · 0 评论 -
MySQL 源码|Query_block 和 Query_expression 的连接关系
均使用嵌入式链表(intrusive double-linked list)的形式的存储。:这里的源码注释有点问题,其中有 Select 1.2.1 节点但 SQL 语句中没有。类表示查询表达式(query expression),其中包含由多个。类表示查询块(query block),其中包含必选的。和指向下级节点链表的第 1 个元素的。(版本 = MySQL 8.0.37)等集合操作合并的一个或多个查询块。类中包含指向上级节点的指针。和表列表,以及可选的。原创 2024-06-03 08:30:51 · 461 阅读 · 1 评论