提交 ffa5eea5 编写于 作者: L liipx

update doc & comment

上级 d40b1ca1
...@@ -2185,8 +2185,8 @@ func (q *Query4Audit) RuleCompareWithFunction() Rule { ...@@ -2185,8 +2185,8 @@ func (q *Query4Audit) RuleCompareWithFunction() Rule {
} }
*/ */
// func(a) between func(c) and func(d)
case *sqlparser.RangeCond: case *sqlparser.RangeCond:
// func(a) between func(c) and func(d)
switch n.Left.(type) { switch n.Left.(type) {
case *sqlparser.SQLVal, *sqlparser.ColName: case *sqlparser.SQLVal, *sqlparser.ColName:
default: default:
...@@ -3231,12 +3231,12 @@ func RuleMySQLError(item string, err error) Rule { ...@@ -3231,12 +3231,12 @@ func RuleMySQLError(item string, err error) Rule {
ErrString string ErrString string
} }
// vitess 语法检查出错返回的是ERR.000 // tidb parser 语法检查出错返回的是ERR.000
switch item { switch item {
case "ERR.000": case "ERR.000":
return Rule{ return Rule{
Item: item, Item: item,
Summary: "no available MySQL environment, sql parse failed: " + err.Error(), Summary: "No available MySQL environment, build-in sql parse failed: " + err.Error(),
Severity: "L8", Severity: "L8",
Content: err.Error(), Content: err.Error(),
} }
...@@ -3270,14 +3270,14 @@ func RuleMySQLError(item string, err error) Rule { ...@@ -3270,14 +3270,14 @@ func RuleMySQLError(item string, err error) Rule {
case "", "1146": case "", "1146":
return Rule{ return Rule{
Item: item, Item: item,
Summary: "MySQL执行出错", Summary: "MySQL execute failed: ",
Severity: "L0", Severity: "L0",
Content: "", Content: "",
} }
default: default:
return Rule{ return Rule{
Item: item, Item: item,
Summary: "MySQL执行出错 " + mysqlError.ErrString, Summary: "MySQL execute failed: " + mysqlError.ErrString,
Severity: "L8", Severity: "L8",
Content: mysqlError.ErrString, Content: mysqlError.ErrString,
} }
......
...@@ -55,14 +55,14 @@ func NewQuery4Audit(sql string, options ...string) (*Query4Audit, error) { ...@@ -55,14 +55,14 @@ func NewQuery4Audit(sql string, options ...string) (*Query4Audit, error) {
} }
q := &Query4Audit{Query: sql} q := &Query4Audit{Query: sql}
// vitess语法解析 // vitess 语法解析不上报,以 tidb parser 为主
q.Stmt, vErr = sqlparser.Parse(sql) q.Stmt, vErr = sqlparser.Parse(sql)
if vErr != nil { if vErr != nil {
common.Log.Warn("NewQuery4Audit vitess parse Error: %s", vErr.Error()) common.Log.Warn("NewQuery4Audit vitess parse Error: %s", vErr.Error())
} }
// TiDB 语法解析仅作为补充,不检查语法错误
// TODO: charset, collation // TODO: charset, collation
// tdib parser 语法解析
q.TiStmt, err = ast.TiParse(sql, charset, collation) q.TiStmt, err = ast.TiParse(sql, charset, collation)
return q, err return q, err
} }
...@@ -1205,7 +1205,7 @@ func FormatSuggest(sql string, format string, suggests ...map[string]Rule) (map[ ...@@ -1205,7 +1205,7 @@ func FormatSuggest(sql string, format string, suggests ...map[string]Rule) (map[
} }
sort.Strings(sortedMySQLSuggest) sort.Strings(sortedMySQLSuggest)
if len(sortedMySQLSuggest) > 0 { if len(sortedMySQLSuggest) > 0 {
buf = append(buf, "## MySQL执行出错\n") buf = append(buf, "## MySQL execute failed\n")
} }
for _, item := range sortedMySQLSuggest { for _, item := range sortedMySQLSuggest {
buf = append(buf, fmt.Sprintln(suggest[item].Content)) buf = append(buf, fmt.Sprintln(suggest[item].Content))
......
...@@ -202,7 +202,7 @@ func main() { ...@@ -202,7 +202,7 @@ func main() {
if !common.Config.DryRun { if !common.Config.DryRun {
os.Exit(1) os.Exit(1)
} }
// vitess 语法检查给出的建议 ERR.000 // tidb parser 语法检查给出的建议 ERR.000
if common.Config.TestDSN.Disable { if common.Config.TestDSN.Disable {
mysqlSuggest["ERR.000"] = advisor.RuleMySQLError("ERR.000", syntaxErr) mysqlSuggest["ERR.000"] = advisor.RuleMySQLError("ERR.000", syntaxErr)
} }
......
...@@ -9,6 +9,12 @@ ...@@ -9,6 +9,12 @@
* [mysql](https://www.mysql.com/) 测试时用来连接测试环境 * [mysql](https://www.mysql.com/) 测试时用来连接测试环境
* [retool](https://github.com/twitchtv/retool): 管理测试开发工具,首次安装耗时会比较长,如: `gometalinter.v2`, `revive`, `golangci-lint` * [retool](https://github.com/twitchtv/retool): 管理测试开发工具,首次安装耗时会比较长,如: `gometalinter.v2`, `revive`, `golangci-lint`
## Web 界面支持
官方不会提供 Web 界面支持,但社区已经有相当多的同学基于 SOAR 开发了衍生的 Web 平台。可以参考如下 ISSUE 的讨论。
> https://github.com/XiaoMi/soar/issues/51
## 命令行参数 `test-dsn`, `online-dsn` 中包含特殊字符怎么办? ## 命令行参数 `test-dsn`, `online-dsn` 中包含特殊字符怎么办?
如果 `test-dsn``online-dsn` 中包含':', '@', '/', '!'等特殊字符建议在配置文件中配置相关信息,配置文件为YAML格式,需要遵守YAML格式的要求规范。 如果 `test-dsn``online-dsn` 中包含':', '@', '/', '!'等特殊字符建议在配置文件中配置相关信息,配置文件为YAML格式,需要遵守YAML格式的要求规范。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册