diff --git a/cmd/soar/soar.go b/cmd/soar/soar.go index 500a40ea29805f6c020f4c4bd4516d82c914042c..5332df5a30ebaeb034356dee5f41ea468ae07fc0 100644 --- a/cmd/soar/soar.go +++ b/cmd/soar/soar.go @@ -278,7 +278,7 @@ func main() { explainInfo, err := rEnv.Explain(q.Query, database.ExplainType[common.Config.ExplainType], database.ExplainFormatType[common.Config.ExplainFormat]) - if err != nil && strings.HasPrefix(vEnv.Database, "optimizer_") { + if err != nil { // 线上环境执行失败才到测试环境 EXPLAIN,比如在用户提供建表语句及查询语句的场景 common.Log.Warn("rEnv.Explain Warn: %v", err) explainInfo, err = vEnv.Explain(q.Query, diff --git a/env/env.go b/env/env.go index 9b3f6ea0910b441df8a4b121d1a3ba7f0ed8e2b2..cbffde9d86e31fcd45ac71321b35913e6f2fd31f 100644 --- a/env/env.go +++ b/env/env.go @@ -122,6 +122,7 @@ func (ve VirtualEnv) RealDB(hash string) string { if _, ok := ve.hash2Db[hash]; ok { return ve.hash2Db[hash] } + common.Log.Error("RealDB, missing hash map: %s", hash) return hash } @@ -355,7 +356,9 @@ func (ve VirtualEnv) createDatabase(rEnv database.Connector, dbName string) erro } // optimizer_YYMMDDHHmmss_xxxx - dbHash := fmt.Sprintf("optimizer_%s_%s", time.Now().Format("060102150405"), uniuri.New()) + dbHash := fmt.Sprintf("optimizer_%s_%s", // Total 39 bytes + time.Now().Format("060102150405"), // 12 Bytes 20180102030405 + strings.ToLower(uniuri.New())) // 16 Bytes random string common.Log.Debug("createDatabase, mapping `%s` :`%s`-->`%s`", dbName, dbName, dbHash) ddl, err := rEnv.ShowCreateDatabase(dbName) if err != nil {