Winfred
Winfred
### fix: batch create file instead of save 多数据源相同SQL的时候,会创建多个task,文件记录应该创建多个,和task对应,在执行的时候,才能获取到task对应的文件记录
### fix: when execute sql file in different sql mode, can not find file 当选择不同SQL模式创建工单的时候,会调用接口:`/v1/projects/{project_name}/tasks/audits [post]` 应该在该接口中保存文件信息,否则在执行的时候会因为找不到文件而执行失败
### refactor: execute sqls in the order of id and file 修改了执行文件的逻辑,整理了代码 1. 根据文件顺序执行SQL 2. 文件中根据SQL的id执行SQL,以batchId对sql进行分组,连续相同batchId的SQL为一组
- [ ] 完成时通知@WinfredLIN,需要追溯
## 问题1 来自:@windking1125 现象:SQL审核结果有4页,翻到第四页后再点前面几页就点不动了 尝试:刷新浏览器缓存,解决不了,分页控件都点不动 浏览器版本:  UI: main aeee2f9d 最后一次的应答结果 ``` (/sqle/v2/projects/default/audit_plans/JACL/reports/188/sqls?page_index=4&page_size=20): { "code": 0, "message": "ok", "data": [ { "audit_plan_report_sql": "UPDATE `t_pul_tdxid` SET `PASSWORD`=?, `UPDATE`=current_date(), `UPTIME`=current_time() WHERE `TDXID`=?",...
## 问题2 来自:@windking1125 执行sql审核时(扫描mybatis文件),异常中止:failed to upload sql: audit result error ## 排查方案 可以尝试,使用scanner时加上 skip-audit=true,不在扫描阶段审核,在智能扫描页面里审核
1. 问题1,未能复现 2. 问题2,报错的原因是sql审核不通过因此不上传,需要添加skip-audit=true来跳过在采集时的审核
@herofqy 您好,请参照SQLE用户手册中,创建工单部分的四个步骤创建工单 https://actiontech.github.io/sqle-docs/docs/user-manual/project/workflow/create-workflow 在点击`创建工单`和`审核`过后,还需要点击`提交工单`,工单才会创建,若未点击提交工单就返回了,是不会在工单列表中查看到未创建的工单的。 
## 补充信息 通过华为云获取慢日志的接口获取到的慢日志SQL,将注释和SQL粘连  通过华为云获取慢日志的接口获取到的慢日志SQL中存在乱码 
## 实现方案 新增两个结构,delimiter,splitter,和一个接口block,对两个结构体parser和scanner新增了一些方法,给splitter调用。其中splitter拥有三个成员:delimiter,parser,scanner。具体职责如下: 1. delimiter用于识别分隔符定义语法和sql文本片段中的分隔符 2. parser是pincap的parser,用于将sql语句解析为抽象语法树节点 3. scanner是pincap的scanner,用于扫描sql语句中的token 4. splitter还会调用block用于检测识别内部包含多条SQL语句的BeginEnd语句块,以及其中的流程控制语句块。 工作流程: 1. splitter会使用scanner遍历sql文本中的token 2. 由splitter调用allblock识别BeginEnd语句块,splitter会跳过该语句块中分隔符的识别 3. 由delimiter识别分隔符定义语法,变更当前上下文的分隔符,并且识别分隔符 4. 由splitter基于识别到的分隔符,将SQL文本切分为一条条SQL 6. 最后由parser将识别到的sql文本转化为抽象语法树节点,将不能识别为sql的文本转化为UnparsedStmt 7. 输出时,不会输出定义分隔符的mysql客户端语法,并且会把自定义的分隔符替换为默认分隔符 ## 测试影响面 影响所有SQL审核相关的功能 影响所有涉及解析SQL文本的功能 ## 兼容性分析...