From d40b1ca1a2061f3f2e1a3fe0181ea5dc175cbec4 Mon Sep 17 00:00:00 2001 From: liipx Date: Wed, 21 Nov 2018 11:09:33 +0800 Subject: [PATCH] main parser replace vitess to tidb & fix test sqls --- advisor/heuristic.go | 4 ++-- advisor/heuristic_test.go | 4 ++-- advisor/rules.go | 12 ++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/advisor/heuristic.go b/advisor/heuristic.go index 4262cb5..f482edd 100644 --- a/advisor/heuristic.go +++ b/advisor/heuristic.go @@ -2185,7 +2185,7 @@ func (q *Query4Audit) RuleCompareWithFunction() Rule { } */ - // func(a) between func(c) and func(d) + // func(a) between func(c) and func(d) case *sqlparser.RangeCond: switch n.Left.(type) { case *sqlparser.SQLVal, *sqlparser.ColName: @@ -3236,7 +3236,7 @@ func RuleMySQLError(item string, err error) Rule { case "ERR.000": return Rule{ Item: item, - Summary: "MySQL执行出错 " + err.Error(), + Summary: "no available MySQL environment, sql parse failed: " + err.Error(), Severity: "L8", Content: err.Error(), } diff --git a/advisor/heuristic_test.go b/advisor/heuristic_test.go index 81e7920..6c0be85 100644 --- a/advisor/heuristic_test.go +++ b/advisor/heuristic_test.go @@ -1164,7 +1164,7 @@ func TestRuleRecursiveDependency(t *testing.T) { `ALTER TABLE tbl2 add FOREIGN KEY (p_id) REFERENCES tab1(p_id);`, }, { - `ALTER TABLE tbl2 ADD KEY (p_id) p_id;`, + `ALTER TABLE tbl2 ADD KEY p_id (p_id);`, }, } for _, sql := range sqls[0] { @@ -2128,7 +2128,7 @@ func TestRuleVarcharVSChar(t *testing.T) { func TestRuleCreateDualTable(t *testing.T) { common.Log.Debug("Entering function: %s", common.GetFunctionName()) sqls := []string{ - `create table dual(id int, primary key (id));`, + "create table `dual`(id int, primary key (id));", } for _, sql := range sqls { q, err := NewQuery4Audit(sql) diff --git a/advisor/rules.go b/advisor/rules.go index beadb79..f333233 100644 --- a/advisor/rules.go +++ b/advisor/rules.go @@ -42,7 +42,7 @@ type Query4Audit struct { // NewQuery4Audit return a struct for Query4Audit func NewQuery4Audit(sql string, options ...string) (*Query4Audit, error) { - var err, tiErr error + var err, vErr error var charset string var collation string @@ -56,14 +56,14 @@ func NewQuery4Audit(sql string, options ...string) (*Query4Audit, error) { q := &Query4Audit{Query: sql} // vitess语法解析 - q.Stmt, err = sqlparser.Parse(sql) + q.Stmt, vErr = sqlparser.Parse(sql) + if vErr != nil { + common.Log.Warn("NewQuery4Audit vitess parse Error: %s", vErr.Error()) + } // TiDB 语法解析仅作为补充,不检查语法错误 // TODO: charset, collation - q.TiStmt, tiErr = ast.TiParse(sql, charset, collation) - if tiErr != nil { - common.Log.Warn("NewQuery4Audit ast.Tiparse Error: %s", tiErr.Error()) - } + q.TiStmt, err = ast.TiParse(sql, charset, collation) return q, err } -- GitLab