From 675c2aec04f089bc119fc3cd2ed170032e997b61 Mon Sep 17 00:00:00 2001 From: liipx Date: Fri, 30 Nov 2018 17:12:23 +0800 Subject: [PATCH] fix #141 --- cmd/soar/soar.go | 1 - vendor/github.com/pingcap/tidb/types/datum.go | 6 ++ .../tidb/util/execdetails/execdetails.go | 13 ++++ vendor/vendor.json | 72 +++++++++---------- 4 files changed, 55 insertions(+), 37 deletions(-) diff --git a/cmd/soar/soar.go b/cmd/soar/soar.go index 5332df5..b393ce3 100644 --- a/cmd/soar/soar.go +++ b/cmd/soar/soar.go @@ -288,7 +288,6 @@ func main() { // EXPLAIN 阶段给出的 ERROR 是 ERR.002 mysqlSuggest["ERR.002"] = advisor.RuleMySQLError("ERR.002", err) common.Log.Error("vEnv.Explain Error: %v", err) - continue } } // 分析 EXPLAIN 结果 diff --git a/vendor/github.com/pingcap/tidb/types/datum.go b/vendor/github.com/pingcap/tidb/types/datum.go index 20f70a5..86d9479 100644 --- a/vendor/github.com/pingcap/tidb/types/datum.go +++ b/vendor/github.com/pingcap/tidb/types/datum.go @@ -1757,6 +1757,12 @@ func NewMysqlBitDatum(b BinaryLiteral) (d Datum) { return d } +// NewMysqlEnumDatum creates a new MysqlEnum Datum for a Enum value. +func NewMysqlEnumDatum(e Enum) (d Datum) { + d.SetMysqlEnum(e) + return d +} + // MakeDatums creates datum slice from interfaces. func MakeDatums(args ...interface{}) []Datum { datums := make([]Datum, len(args)) diff --git a/vendor/github.com/pingcap/tidb/util/execdetails/execdetails.go b/vendor/github.com/pingcap/tidb/util/execdetails/execdetails.go index ad384c5..6ab29ac 100644 --- a/vendor/github.com/pingcap/tidb/util/execdetails/execdetails.go +++ b/vendor/github.com/pingcap/tidb/util/execdetails/execdetails.go @@ -88,6 +88,14 @@ func (e *RuntimeStatsColl) Get(planID string) *RuntimeStats { return runtimeStats } +// Exists checks if the planID exists in the stats collection. +func (e *RuntimeStatsColl) Exists(planID string) bool { + e.mu.Lock() + defer e.mu.Unlock() + _, exists := e.stats[planID] + return exists +} + // Record records executor's execution. func (e *RuntimeStats) Record(d time.Duration, rowNum int) { atomic.AddInt32(&e.loop, 1) @@ -95,6 +103,11 @@ func (e *RuntimeStats) Record(d time.Duration, rowNum int) { atomic.AddInt64(&e.rows, int64(rowNum)) } +// SetRowNum sets the row num. +func (e *RuntimeStats) SetRowNum(rowNum int64) { + atomic.StoreInt64(&e.rows, rowNum) +} + func (e *RuntimeStats) String() string { if e == nil { return "" diff --git a/vendor/vendor.json b/vendor/vendor.json index b55cd07..5452600 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -167,44 +167,44 @@ { "checksumSHA1": "kO63T5plq+V7HWnkzB9WlOnp9Iw=", "path": "github.com/pingcap/tidb/sessionctx/stmtctx", - "revision": "487bb50390bbe0c712a4b850c20bf7cc12f4d061", - "revisionTime": "2018-11-27T03:35:52Z" + "revision": "36bcf5db4ab610aff7287081da04e2893760a45a", + "revisionTime": "2018-11-30T06:30:31Z" }, { - "checksumSHA1": "BWIBDHaP7HVZSaGVwdD27c5t4Os=", + "checksumSHA1": "U/Wz15G+PgX5yjPBvxRpTywvvCw=", "path": "github.com/pingcap/tidb/types", - "revision": "487bb50390bbe0c712a4b850c20bf7cc12f4d061", - "revisionTime": "2018-11-27T03:35:52Z" + "revision": "36bcf5db4ab610aff7287081da04e2893760a45a", + "revisionTime": "2018-11-30T06:30:31Z" }, { "checksumSHA1": "DWVD7+ygtT66IQ+cqXmMJ5OVqUk=", "path": "github.com/pingcap/tidb/types/json", - "revision": "487bb50390bbe0c712a4b850c20bf7cc12f4d061", - "revisionTime": "2018-11-27T03:35:52Z" + "revision": "36bcf5db4ab610aff7287081da04e2893760a45a", + "revisionTime": "2018-11-30T06:30:31Z" }, { "checksumSHA1": "78GI/0/9CTFg5FMZc1WcB9EcIp4=", "path": "github.com/pingcap/tidb/types/parser_driver", - "revision": "487bb50390bbe0c712a4b850c20bf7cc12f4d061", - "revisionTime": "2018-11-27T03:35:52Z" + "revision": "36bcf5db4ab610aff7287081da04e2893760a45a", + "revisionTime": "2018-11-30T06:30:31Z" }, { - "checksumSHA1": "FEk9aPJr77VMn+nUhdXVkfU+NvM=", + "checksumSHA1": "s709bhSrG2Ec35406mGtrySid4s=", "path": "github.com/pingcap/tidb/util/execdetails", - "revision": "487bb50390bbe0c712a4b850c20bf7cc12f4d061", - "revisionTime": "2018-11-27T03:35:52Z" + "revision": "36bcf5db4ab610aff7287081da04e2893760a45a", + "revisionTime": "2018-11-30T06:30:31Z" }, { "checksumSHA1": "nUC7zVoAMNR2a+z2iGqHoN2AkFE=", "path": "github.com/pingcap/tidb/util/hack", - "revision": "487bb50390bbe0c712a4b850c20bf7cc12f4d061", - "revisionTime": "2018-11-27T03:35:52Z" + "revision": "36bcf5db4ab610aff7287081da04e2893760a45a", + "revisionTime": "2018-11-30T06:30:31Z" }, { "checksumSHA1": "xSyepiuqsoaaeDch7cXeumvVHKM=", "path": "github.com/pingcap/tidb/util/memory", - "revision": "487bb50390bbe0c712a4b850c20bf7cc12f4d061", - "revisionTime": "2018-11-27T03:35:52Z" + "revision": "36bcf5db4ab610aff7287081da04e2893760a45a", + "revisionTime": "2018-11-30T06:30:31Z" }, { "checksumSHA1": "SmYeIK/fIYXNu8IKxD6HOVQVTuU=", @@ -401,62 +401,62 @@ { "checksumSHA1": "aKn1oKcY74N8TRLm3Ayt7Q4bbI4=", "path": "vitess.io/vitess/go/bytes2", - "revision": "9d0594c50251a5167ac786408cea822ae994951c", - "revisionTime": "2018-11-25T05:49:41Z" + "revision": "2e2214a2660f9e52e6a1366470fc80849a9ef9ec", + "revisionTime": "2018-11-30T04:16:32Z" }, { "checksumSHA1": "JVCEN4UGRmg3TofIBdzZMZ3G0Ww=", "path": "vitess.io/vitess/go/hack", - "revision": "9d0594c50251a5167ac786408cea822ae994951c", - "revisionTime": "2018-11-25T05:49:41Z" + "revision": "2e2214a2660f9e52e6a1366470fc80849a9ef9ec", + "revisionTime": "2018-11-30T04:16:32Z" }, { "checksumSHA1": "e1WJ7vCnVrlQQQlc6n/FewCDMso=", "path": "vitess.io/vitess/go/sqltypes", - "revision": "9d0594c50251a5167ac786408cea822ae994951c", - "revisionTime": "2018-11-25T05:49:41Z" + "revision": "2e2214a2660f9e52e6a1366470fc80849a9ef9ec", + "revisionTime": "2018-11-30T04:16:32Z" }, { "checksumSHA1": "ntFIQYkBS51G6y+FEkjFW40+HOU=", "path": "vitess.io/vitess/go/vt/log", - "revision": "9d0594c50251a5167ac786408cea822ae994951c", - "revisionTime": "2018-11-25T05:49:41Z" + "revision": "2e2214a2660f9e52e6a1366470fc80849a9ef9ec", + "revisionTime": "2018-11-30T04:16:32Z" }, { "checksumSHA1": "XozR8bmeSR5KTe/nlUJkpJY2HKI=", "path": "vitess.io/vitess/go/vt/proto/query", - "revision": "9d0594c50251a5167ac786408cea822ae994951c", - "revisionTime": "2018-11-25T05:49:41Z" + "revision": "2e2214a2660f9e52e6a1366470fc80849a9ef9ec", + "revisionTime": "2018-11-30T04:16:32Z" }, { "checksumSHA1": "OnWsUHLDKcO3spwH0jD55SvKD24=", "path": "vitess.io/vitess/go/vt/proto/topodata", - "revision": "9d0594c50251a5167ac786408cea822ae994951c", - "revisionTime": "2018-11-25T05:49:41Z" + "revision": "2e2214a2660f9e52e6a1366470fc80849a9ef9ec", + "revisionTime": "2018-11-30T04:16:32Z" }, { "checksumSHA1": "sBAuZ/itMR8U8qbK4yLHxkP6Cpc=", "path": "vitess.io/vitess/go/vt/proto/vtgate", - "revision": "9d0594c50251a5167ac786408cea822ae994951c", - "revisionTime": "2018-11-25T05:49:41Z" + "revision": "2e2214a2660f9e52e6a1366470fc80849a9ef9ec", + "revisionTime": "2018-11-30T04:16:32Z" }, { "checksumSHA1": "pLWM+SPGZs3k+IhjktE/cGUlpM0=", "path": "vitess.io/vitess/go/vt/proto/vtrpc", - "revision": "9d0594c50251a5167ac786408cea822ae994951c", - "revisionTime": "2018-11-25T05:49:41Z" + "revision": "2e2214a2660f9e52e6a1366470fc80849a9ef9ec", + "revisionTime": "2018-11-30T04:16:32Z" }, { "checksumSHA1": "2ZBC/pPjs13cocUf8PoMSvAO5u4=", "path": "vitess.io/vitess/go/vt/sqlparser", - "revision": "9d0594c50251a5167ac786408cea822ae994951c", - "revisionTime": "2018-11-25T05:49:41Z" + "revision": "2e2214a2660f9e52e6a1366470fc80849a9ef9ec", + "revisionTime": "2018-11-30T04:16:32Z" }, { "checksumSHA1": "oF4XzuOzwvj1iduX/lYqNSyY/HM=", "path": "vitess.io/vitess/go/vt/vterrors", - "revision": "9d0594c50251a5167ac786408cea822ae994951c", - "revisionTime": "2018-11-25T05:49:41Z" + "revision": "2e2214a2660f9e52e6a1366470fc80849a9ef9ec", + "revisionTime": "2018-11-30T04:16:32Z" } ], "rootPath": "github.com/XiaoMi/soar" -- GitLab