diff --git a/ast/token.go b/ast/token.go index c48ede94e06e6f011540eaf9fd5ad8b54cdf5d5a..8502b6349e3a5a83b95fae96255d329a6b480781 100644 --- a/ast/token.go +++ b/ast/token.go @@ -894,7 +894,8 @@ func Compress(sql string) string { } // SplitStatement SQL切分 -func SplitStatement(buf []byte, delimiter []byte) (string, []byte) { +// return original sql, remove comment sql, left over buf +func SplitStatement(buf []byte, delimiter []byte) (string, string, []byte) { var singleLineComment bool var multiLineComment bool var quoted bool @@ -988,8 +989,9 @@ func SplitStatement(buf []byte, delimiter []byte) (string, []byte) { sql = string(buf) } } + orgSQL := string(buf[:len(sql)]) buf = buf[len(sql):] - return strings.TrimSuffix(sql, string(delimiter)), buf + return orgSQL, strings.TrimSuffix(sql, string(delimiter)), buf } // LeftNewLines cal left new lines in space diff --git a/cmd/soar/soar.go b/cmd/soar/soar.go index 15c3678527d875a574c2abdbbdc5c0c3a50d1fb7..82951aac658e674d945c1fac7f640144744ff63d 100644 --- a/cmd/soar/soar.go +++ b/cmd/soar/soar.go @@ -111,11 +111,11 @@ func main() { break } // 查询请求切分 - sql, bufBytes := ast.SplitStatement([]byte(buf), []byte(common.Config.Delimiter)) + orgSQL, sql, bufBytes := ast.SplitStatement([]byte(buf), []byte(common.Config.Delimiter)) // lineCounter - lc := ast.NewLines([]byte(sql)) + lc := ast.NewLines([]byte(orgSQL)) // leftLineCounter - llc := ast.LeftNewLines([]byte(sql)) + llc := ast.LeftNewLines([]byte(orgSQL)) lineCounter += llc buf = string(bufBytes) diff --git a/database/mysql.go b/database/mysql.go index 14783af0590b1d3fcae06ccd7434275b2e10b0fc..6f1ce4527d036e14efa1dd7547b82bdc1312e009 100644 --- a/database/mysql.go +++ b/database/mysql.go @@ -170,7 +170,7 @@ func (db *Connector) Source(file string) ([]*QueryResult, error) { } // 查询请求切分 - sql, bufBytes := ast.SplitStatement([]byte(buf), []byte(common.Config.Delimiter)) + _, sql, bufBytes := ast.SplitStatement([]byte(buf), []byte(common.Config.Delimiter)) buf = string(bufBytes) sql = strings.TrimSpace(sql) common.Log.Debug("Source Query SQL: %s", sql)