提交 3f5e8a95 编写于 作者: martianzhang's avatar martianzhang

fix #118

  tidb parser now is much more reliable
  change only-syntax-check totally into tidb parser.
上级 dc6d2b3c
...@@ -182,22 +182,12 @@ func main() { ...@@ -182,22 +182,12 @@ func main() {
q, syntaxErr := advisor.NewQuery4Audit(sql) q, syntaxErr := advisor.NewQuery4Audit(sql)
stmt := q.Stmt stmt := q.Stmt
switch stmt.(type) {
case *sqlparser.DDL:
// 因为 vitess 的 parser 对于 DDL 语法支持不好,通过在测试环境执行辅助进行语法检查
if common.Config.OnlySyntaxCheck && vEnv.BuildVirtualEnv(rEnv, sql) {
syntaxErr = vEnv.Error
}
}
// 如果语法检查出错则不需要给优化建议 // 如果语法检查出错则不需要给优化建议
if syntaxErr != nil { if syntaxErr != nil {
errContent := fmt.Sprintf("At SQL %d : %v", sqlCounter, syntaxErr) errContent := fmt.Sprintf("At SQL %d : %v", sqlCounter, syntaxErr)
common.Log.Warning(errContent) common.Log.Warning(errContent)
if common.Config.OnlySyntaxCheck { if common.Config.OnlySyntaxCheck {
if !strings.Contains(errContent, `doesn't exist`) { fmt.Println(errContent)
fmt.Println(errContent)
}
} }
if !common.Config.DryRun { if !common.Config.DryRun {
os.Exit(1) os.Exit(1)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册