新增功能:
Bugfix:
新增:
DROP TABLE
语句的解析逻辑ANALYZE TABLE
语句的解析逻辑ALTER TABLE
语句的解析逻辑CREATE TABLE ... AS ...
语句的解析逻辑MSCK REPAIR TABLE
语句的解析逻辑USE
语句的解析逻辑- 新增 Hive 的
SORT BY
子句、DISTRIBUTE BY
子句和CLUSTER BY
子句节点 - 海豚调度元数据 Demo
- 新增单元测试覆盖率统计工具
优化:
- 优化抽象语法树节点和解析逻辑的继承关系、文件结构
- 新增函数名节点、
CASE
元素节点、GROUP BY
元素节点、ASTWithClause
节点、ASTConfigStringExpression
节点 - 兼容
INSERT IGNORE INTO
语法 CreateTableStatementGetter
增加本地缓存功能- 在解析器中增加了
SQLType
参数以支持特异化解析 - 将表达式节点拆分为单项式、多项式、布尔值表达式、条件表达式 4 个层级
- 兼容解析多条语句时语句末尾没有
;
的情况 - 兼容
SET
语句的配置名和配置值中包含 . 符号 - 兼容
LATERAL VIEW
子句中使用数据结构包含多个字段的语法 - 兼容窗口函数中使用多个字段的语法
- 兼容窗口函数
ORDER BY
使用DESC
的语法 - 兼容
COUNT
窗口函数语法 - 兼容
==
运算符和!
运算符 - 兼容
REGEXP
关键字 - 兼容类似
a = b = c
的情况 - 兼容在子查询中使用包含
WITH
子句的SELECT
语句 - 兼容在
LATERAL VIEW
子句中使用OUTER
- 兼容一元表达式
- 兼容
PARTITION
语句中使用不等式的语法 - 修复在子查询外额外嵌套多层括号时解析报错的 Bug
- 兼容
<=>
符号 - 兼容
PARTITION
表达式的动态分区和非动态分区 - 兼容
[
和]
之间为一个表达式的语法 - 兼容
LIMIT
子句只有数量没有偏移量 - 兼容
CASE
语句的THEN
中使用布尔值表达式的情况 - 临时兼容布尔值表达式后包含更多比较运算符的情况(待后续改为根据运算优先级生成嵌套的二元表达式)
- 兼容
LEFT SEMI JOIN
和RIGHT SEMI JOIN
语法 - 兼容
GROUP BY
子句中既有字段,又有GROUPING SETS
的语法 - 兼容
&
符号 - 支持
ALTER TABLE
的DROP IF EXISTS PARTITION
语法 - 兼容在 map 结构后使用下标的语法
修复:
- 部分场景下
-1
解析报错的 Bug - 修复解析
<>
符号失败的 Bug - 修复
b.
和x.
解析报错的 Bug - 修复解析
GROUPING SETS
缺失字段的 Bug
新增:
- 分析器框架 & 基本分析器 & 数据血缘分析器
- 插件框架 & MyBatis 插件
优化:
- 优化词法分析节点,优化模块名,将节点改为不可变
- 兼容建表语句的索引包含
COMMENT
、KEY_BLOCK_SIZE
的语法 - 兼容建表语句的外键中包含
ON DELETE CASCADE
的语法 - 兼容
CREATE TABLE
语句中索引定义表达式中USING
子句语法 - 兼容 Hive 建表语句语法
- 统一标识符引号的相关逻辑
- 兼容
INSERT INTO
语句中未指定列的语法
修复:
- 部分场景下解析后的 SQL 与原始 SQL 不一致的 Bug
新增:
SET
语句的解析逻辑LATERAL VIEW
子句的解析逻辑WITH
子句的解析逻辑
优化:
- 重构词法解析和语法解析以支持插件开发
- 将抽象语法树节点重构为
dataclasses
类型,并将get_used_column_list
方法和get_used_table_list
方法改为抽象方法 - 修改抽象语法树解析方法,以兼容字符串类型和
TokenScanner
类型 - 增加
TokenScanner
未解析完成检查机制 - 兼容窗口函数的
ROWS
子句 - 兼容 DB2 的
CURRENT DATE
、CURRENT TIME
、CURRENT TIMESTAMP
语法 - 整理单元测试逻辑
新增:
INSERT
语句解析逻辑- 一次性解析多条 SQL 语句功能
优化:
- 统一
CREATE TABLE
解析逻辑和SELECT
解析逻辑 - 整理词法分析器的方法,清理多余对象,优化引用路径
- 统一
TokenScanner
的使用方法
修复:
- 含
WITH
语句解析报错的 Bug 修复 - Hive 建表语句的类型包含参数时报错的 Bug 修复
新增:
SELECT
语句解析逻辑CREATE TABLE
语句解析逻辑
优化:
- 移除在 Hive 建表语句末尾的分号