From 0eb532a475d42950803cf186a2dad91959272bb4 Mon Sep 17 00:00:00 2001 From: crazycs520 Date: Sun, 29 Sep 2019 20:32:08 +0800 Subject: [PATCH 1/6] *: support where in admin show ddl statement --- executor/builder.go | 4 ++-- executor/executor_test.go | 2 +- go.mod | 2 ++ go.sum | 4 ++-- planner/core/common_plans.go | 7 ------- planner/core/find_best_task.go | 9 ++++++++ planner/core/initialize.go | 16 ++++++++++++++ planner/core/logical_plans.go | 7 +++++++ planner/core/physical_plans.go | 7 +++++++ planner/core/planbuilder.go | 38 ++++++++++++++++++++++------------ planner/core/stats.go | 15 ++++++++++++-- planner/core/stringer.go | 2 ++ 12 files changed, 86 insertions(+), 27 deletions(-) diff --git a/executor/builder.go b/executor/builder.go index 6ba5b411ff9bc..60b50687b4efd 100644 --- a/executor/builder.go +++ b/executor/builder.go @@ -144,7 +144,7 @@ func (b *executorBuilder) build(p plannercore.Plan) Executor { return b.buildShowNextRowID(v) case *plannercore.ShowDDL: return b.buildShowDDL(v) - case *plannercore.ShowDDLJobs: + case *plannercore.PhysicalShowDDLJobs: return b.buildShowDDLJobs(v) case *plannercore.ShowDDLJobQueries: return b.buildShowDDLJobQueries(v) @@ -282,7 +282,7 @@ func (b *executorBuilder) buildShowDDL(v *plannercore.ShowDDL) Executor { return e } -func (b *executorBuilder) buildShowDDLJobs(v *plannercore.ShowDDLJobs) Executor { +func (b *executorBuilder) buildShowDDLJobs(v *plannercore.PhysicalShowDDLJobs) Executor { e := &ShowDDLJobsExec{ jobNumber: v.JobNumber, is: b.is, diff --git a/executor/executor_test.go b/executor/executor_test.go index ce484f54b4842..66448e3d7e01b 100644 --- a/executor/executor_test.go +++ b/executor/executor_test.go @@ -456,7 +456,7 @@ func (s *testSuite) TestAdminShowDDLJobs(c *C) { err = tk.Se.CommitTxn(context.Background()) c.Assert(err, IsNil) - re = tk.MustQuery("admin show ddl jobs 1") + re = tk.MustQuery("admin show ddl jobs 1 where job_type='create table'") row = re.Rows()[0] c.Assert(row[1], Equals, "test_admin_show_ddl_jobs") } diff --git a/go.mod b/go.mod index e1ae085082f7b..ba64edc276fab 100644 --- a/go.mod +++ b/go.mod @@ -78,3 +78,5 @@ require ( ) go 1.13 + +replace github.com/pingcap/parser => github.com/crazycs520/parser v0.0.0-20190929091254-85344bdd5ae3 diff --git a/go.sum b/go.sum index dd4bbfd3b5d8d..e2f78612a3e9b 100644 --- a/go.sum +++ b/go.sum @@ -28,6 +28,8 @@ github.com/coreos/go-systemd v0.0.0-20181031085051-9002847aa142/go.mod h1:F5haX7 github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/crazycs520/parser v0.0.0-20190929091254-85344bdd5ae3 h1:/fZiYheQ4yHpQbPvEkUWj5DuCaEX5fInDKE4UVjwqjI= +github.com/crazycs520/parser v0.0.0-20190929091254-85344bdd5ae3/go.mod h1:xLjI+gnWYexq011WPMEvCNS8rFM9qe1vdojIEzSKPuc= github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548 h1:iwZdTE0PVqJCos1vaoKsclOGD3ADKpshg3SRtYBbwso= github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM= github.com/cznic/sortutil v0.0.0-20150617083342-4c7342852e65 h1:hxuZop6tSoOi0sxFzoGGYdRqNrPubyaIf9KoBG9tPiE= @@ -164,8 +166,6 @@ github.com/pingcap/kvproto v0.0.0-20190910074005-0e61b6f435c1 h1:DNvxkdcjA0TBIII github.com/pingcap/kvproto v0.0.0-20190910074005-0e61b6f435c1/go.mod h1:QMdbTAXCHzzygQzqcG9uVUgU2fKeSN1GmfMiykdSzzY= github.com/pingcap/log v0.0.0-20190715063458-479153f07ebd h1:hWDol43WY5PGhsh3+8794bFHY1bPrmu6bTalpssCrGg= github.com/pingcap/log v0.0.0-20190715063458-479153f07ebd/go.mod h1:WpHUKhNZ18v116SvGrmjkA9CBhYmuUTKL+p8JC9ANEw= -github.com/pingcap/parser v0.0.0-20190923031704-33636bc5e5d6 h1:PyjsTUD8gJ6QGilbwiy/TTn89J84/69Pj9LixOd/fFE= -github.com/pingcap/parser v0.0.0-20190923031704-33636bc5e5d6/go.mod h1:1FNvfp9+J0wvc4kl8eGNh7Rqrxveg15jJoWo/a0uHwA= github.com/pingcap/pd v1.1.0-beta.0.20190923032047-5c648dc365e0 h1:GIEq+wZfrl2bcJxpuSrEH4H7/nlf5YdmpS+dU9lNIt8= github.com/pingcap/pd v1.1.0-beta.0.20190923032047-5c648dc365e0/go.mod h1:G/6rJpnYwM0LKMec2rI82/5Kg6GaZMvlfB+e6/tvYmI= github.com/pingcap/tidb-tools v2.1.3-0.20190321065848-1e8b48f5c168+incompatible h1:MkWCxgZpJBgY2f4HtwWMMFzSBb3+JPzeJgF3VrXE/bU= diff --git a/planner/core/common_plans.go b/planner/core/common_plans.go index f322ad3bf1664..21e9ba20e2cef 100644 --- a/planner/core/common_plans.go +++ b/planner/core/common_plans.go @@ -44,13 +44,6 @@ type ShowDDL struct { baseSchemaProducer } -// ShowDDLJobs is for showing DDL job list. -type ShowDDLJobs struct { - baseSchemaProducer - - JobNumber int64 -} - // ShowSlow is for showing slow queries. type ShowSlow struct { baseSchemaProducer diff --git a/planner/core/find_best_task.go b/planner/core/find_best_task.go index b9e96acb17bff..0022b13cfad73 100644 --- a/planner/core/find_best_task.go +++ b/planner/core/find_best_task.go @@ -109,6 +109,15 @@ func (p *LogicalShow) findBestTask(prop *property.PhysicalProperty) (task, error return &rootTask{p: pShow}, nil } +func (p *LogicalShowDDLJobs) findBestTask(prop *property.PhysicalProperty) (task, error) { + if !prop.IsEmpty() { + return invalidTask, nil + } + pShow := PhysicalShowDDLJobs{JobNumber: p.JobNumber}.Init(p.ctx) + pShow.SetSchema(p.schema) + return &rootTask{p: pShow}, nil +} + // findBestTask implements LogicalPlan interface. func (p *baseLogicalPlan) findBestTask(prop *property.PhysicalProperty) (bestTask task, err error) { // If p is an inner plan in an IndexJoin, the IndexJoin will generate an inner plan by itself, diff --git a/planner/core/initialize.go b/planner/core/initialize.go index 99bbde2299ac7..a958963d14509 100644 --- a/planner/core/initialize.go +++ b/planner/core/initialize.go @@ -91,6 +91,8 @@ const ( TypeTableGather = "TableGather" // TypeIndexMerge is the type of IndexMergeReader TypeIndexMerge = "IndexMerge" + // TypeShowDDLJobs is the type of show ddl jobs. + TypeShowDDLJobs = "ShowDDLJobs" ) // Init initializes LogicalAggregation. @@ -291,6 +293,12 @@ func (p LogicalShow) Init(ctx sessionctx.Context) *LogicalShow { return &p } +// Init initializes LogicalShow. +func (p LogicalShowDDLJobs) Init(ctx sessionctx.Context) *LogicalShowDDLJobs { + p.baseLogicalPlan = newBaseLogicalPlan(ctx, TypeShowDDLJobs, &p, 0) + return &p +} + // Init initializes PhysicalShow. func (p PhysicalShow) Init(ctx sessionctx.Context) *PhysicalShow { p.basePhysicalPlan = newBasePhysicalPlan(ctx, TypeShow, &p, 0) @@ -299,6 +307,14 @@ func (p PhysicalShow) Init(ctx sessionctx.Context) *PhysicalShow { return &p } +// Init initializes PhysicalShow. +func (p PhysicalShowDDLJobs) Init(ctx sessionctx.Context) *PhysicalShowDDLJobs { + p.basePhysicalPlan = newBasePhysicalPlan(ctx, TypeShowDDLJobs, &p, 0) + // Just use pseudo stats to avoid panic. + p.stats = &property.StatsInfo{RowCount: 1} + return &p +} + // Init initializes LogicalLock. func (p LogicalLock) Init(ctx sessionctx.Context) *LogicalLock { p.baseLogicalPlan = newBaseLogicalPlan(ctx, TypeLock, &p, 0) diff --git a/planner/core/logical_plans.go b/planner/core/logical_plans.go index afe988226839a..48bdf0b7fecab 100644 --- a/planner/core/logical_plans.go +++ b/planner/core/logical_plans.go @@ -864,3 +864,10 @@ type LogicalShow struct { logicalSchemaProducer ShowContents } + +// LogicalShowDDLJobs is for showing DDL job list. +type LogicalShowDDLJobs struct { + logicalSchemaProducer + + JobNumber int64 +} diff --git a/planner/core/physical_plans.go b/planner/core/physical_plans.go index ce103daaed282..6d1b842375a24 100644 --- a/planner/core/physical_plans.go +++ b/planner/core/physical_plans.go @@ -518,6 +518,13 @@ type PhysicalShow struct { ShowContents } +// PhysicalShowDDLJobs is for showing DDL job list. +type PhysicalShowDDLJobs struct { + physicalSchemaProducer + + JobNumber int64 +} + // BuildMergeJoinPlan builds a PhysicalMergeJoin from the given fields. Currently, it is only used for test purpose. func BuildMergeJoinPlan(ctx sessionctx.Context, joinType JoinType, leftKeys, rightKeys []*expression.Column) *PhysicalMergeJoin { baseJoin := basePhysicalJoin{ diff --git a/planner/core/planbuilder.go b/planner/core/planbuilder.go index aaa9f3edc677c..7b3c5a7528d8d 100644 --- a/planner/core/planbuilder.go +++ b/planner/core/planbuilder.go @@ -735,9 +735,20 @@ func (b *PlanBuilder) buildAdmin(ctx context.Context, as *ast.AdminStmt) (Plan, p.SetSchema(buildShowDDLFields()) ret = p case ast.AdminShowDDLJobs: - p := &ShowDDLJobs{JobNumber: as.JobNumber} + p := LogicalShowDDLJobs{JobNumber: as.JobNumber}.Init(b.ctx) p.SetSchema(buildShowDDLJobsFields()) - ret = p + for _, col := range p.schema.Columns { + col.UniqueID = b.ctx.GetSessionVars().AllocPlanColumnID() + } + var np LogicalPlan + np = p + if as.Where != nil { + np, err = b.buildSelection(ctx, np, as.Where, nil) + if err != nil { + return nil, err + } + } + ret = np case ast.AdminCancelDDLJobs: p := &CancelDDLJobs{JobIDs: as.JobIDs} p.SetSchema(buildCancelDDLJobsFields()) @@ -1263,18 +1274,19 @@ func buildCleanupIndexFields() *expression.Schema { } func buildShowDDLJobsFields() *expression.Schema { + tblName := "DDLJobs" schema := expression.NewSchema(make([]*expression.Column, 0, 11)...) - schema.Append(buildColumn("", "JOB_ID", mysql.TypeLonglong, 4)) - schema.Append(buildColumn("", "DB_NAME", mysql.TypeVarchar, 64)) - schema.Append(buildColumn("", "TABLE_NAME", mysql.TypeVarchar, 64)) - schema.Append(buildColumn("", "JOB_TYPE", mysql.TypeVarchar, 64)) - schema.Append(buildColumn("", "SCHEMA_STATE", mysql.TypeVarchar, 64)) - schema.Append(buildColumn("", "SCHEMA_ID", mysql.TypeLonglong, 4)) - schema.Append(buildColumn("", "TABLE_ID", mysql.TypeLonglong, 4)) - schema.Append(buildColumn("", "ROW_COUNT", mysql.TypeLonglong, 4)) - schema.Append(buildColumn("", "START_TIME", mysql.TypeVarchar, 64)) - schema.Append(buildColumn("", "END_TIME", mysql.TypeVarchar, 64)) - schema.Append(buildColumn("", "STATE", mysql.TypeVarchar, 64)) + schema.Append(buildColumn(tblName, "JOB_ID", mysql.TypeLonglong, 4)) + schema.Append(buildColumn(tblName, "DB_NAME", mysql.TypeVarchar, 64)) + schema.Append(buildColumn(tblName, "TABLE_NAME", mysql.TypeVarchar, 64)) + schema.Append(buildColumn(tblName, "JOB_TYPE", mysql.TypeVarchar, 64)) + schema.Append(buildColumn(tblName, "SCHEMA_STATE", mysql.TypeVarchar, 64)) + schema.Append(buildColumn(tblName, "SCHEMA_ID", mysql.TypeLonglong, 4)) + schema.Append(buildColumn(tblName, "TABLE_ID", mysql.TypeLonglong, 4)) + schema.Append(buildColumn(tblName, "ROW_COUNT", mysql.TypeLonglong, 4)) + schema.Append(buildColumn(tblName, "START_TIME", mysql.TypeVarchar, 64)) + schema.Append(buildColumn(tblName, "END_TIME", mysql.TypeVarchar, 64)) + schema.Append(buildColumn(tblName, "STATE", mysql.TypeVarchar, 64)) return schema } diff --git a/planner/core/stats.go b/planner/core/stats.go index 516273a32a92f..972dc2021d169 100644 --- a/planner/core/stats.go +++ b/planner/core/stats.go @@ -45,14 +45,25 @@ func (p *LogicalTableDual) DeriveStats(childStats []*property.StatsInfo) (*prope // DeriveStats implement LogicalPlan DeriveStats interface. func (p *LogicalShow) DeriveStats(childStats []*property.StatsInfo) (*property.StatsInfo, error) { // A fake count, just to avoid panic now. + p.stats = getFakeStats(p.Schema().Len()) + return p.stats, nil +} + +func getFakeStats(length int) *property.StatsInfo { profile := &property.StatsInfo{ RowCount: 1, - Cardinality: make([]float64, p.Schema().Len()), + Cardinality: make([]float64, length), } for i := range profile.Cardinality { profile.Cardinality[i] = 1 } - p.stats = profile + return profile +} + +// DeriveStats implement LogicalPlan DeriveStats interface. +func (p *LogicalShowDDLJobs) DeriveStats(childStats []*property.StatsInfo) (*property.StatsInfo, error) { + // A fake count, just to avoid panic now. + p.stats = getFakeStats(p.Schema().Len()) return p.stats, nil } diff --git a/planner/core/stringer.go b/planner/core/stringer.go index 32a71833661c9..532f8610703da 100644 --- a/planner/core/stringer.go +++ b/planner/core/stringer.go @@ -115,6 +115,8 @@ func toString(in Plan, strs []string, idxs []int) ([]string, []int) { str = "ShowDDL" case *LogicalShow, *PhysicalShow: str = "Show" + case *LogicalShowDDLJobs, *PhysicalShowDDLJobs: + str = "ShowDDLJobs" case *LogicalSort, *PhysicalSort: str = "Sort" case *LogicalJoin: From 4d0053feea038ea063827a98872f7317639f82a4 Mon Sep 17 00:00:00 2001 From: crazycs520 Date: Sun, 29 Sep 2019 20:41:42 +0800 Subject: [PATCH 2/6] refine code --- planner/core/planbuilder.go | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/planner/core/planbuilder.go b/planner/core/planbuilder.go index 7b3c5a7528d8d..0dc614616fc4a 100644 --- a/planner/core/planbuilder.go +++ b/planner/core/planbuilder.go @@ -1274,19 +1274,18 @@ func buildCleanupIndexFields() *expression.Schema { } func buildShowDDLJobsFields() *expression.Schema { - tblName := "DDLJobs" schema := expression.NewSchema(make([]*expression.Column, 0, 11)...) - schema.Append(buildColumn(tblName, "JOB_ID", mysql.TypeLonglong, 4)) - schema.Append(buildColumn(tblName, "DB_NAME", mysql.TypeVarchar, 64)) - schema.Append(buildColumn(tblName, "TABLE_NAME", mysql.TypeVarchar, 64)) - schema.Append(buildColumn(tblName, "JOB_TYPE", mysql.TypeVarchar, 64)) - schema.Append(buildColumn(tblName, "SCHEMA_STATE", mysql.TypeVarchar, 64)) - schema.Append(buildColumn(tblName, "SCHEMA_ID", mysql.TypeLonglong, 4)) - schema.Append(buildColumn(tblName, "TABLE_ID", mysql.TypeLonglong, 4)) - schema.Append(buildColumn(tblName, "ROW_COUNT", mysql.TypeLonglong, 4)) - schema.Append(buildColumn(tblName, "START_TIME", mysql.TypeVarchar, 64)) - schema.Append(buildColumn(tblName, "END_TIME", mysql.TypeVarchar, 64)) - schema.Append(buildColumn(tblName, "STATE", mysql.TypeVarchar, 64)) + schema.Append(buildColumn("", "JOB_ID", mysql.TypeLonglong, 4)) + schema.Append(buildColumn("", "DB_NAME", mysql.TypeVarchar, 64)) + schema.Append(buildColumn("", "TABLE_NAME", mysql.TypeVarchar, 64)) + schema.Append(buildColumn("", "JOB_TYPE", mysql.TypeVarchar, 64)) + schema.Append(buildColumn("", "SCHEMA_STATE", mysql.TypeVarchar, 64)) + schema.Append(buildColumn("", "SCHEMA_ID", mysql.TypeLonglong, 4)) + schema.Append(buildColumn("", "TABLE_ID", mysql.TypeLonglong, 4)) + schema.Append(buildColumn("", "ROW_COUNT", mysql.TypeLonglong, 4)) + schema.Append(buildColumn("", "START_TIME", mysql.TypeVarchar, 64)) + schema.Append(buildColumn("", "END_TIME", mysql.TypeVarchar, 64)) + schema.Append(buildColumn("", "STATE", mysql.TypeVarchar, 64)) return schema } From 16945560a5c74f20fc14028f4fa9e983213bf3a8 Mon Sep 17 00:00:00 2001 From: crazycs Date: Tue, 8 Oct 2019 23:09:38 +0800 Subject: [PATCH 3/6] Update planner/core/initialize.go Co-Authored-By: bb7133 --- planner/core/initialize.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/planner/core/initialize.go b/planner/core/initialize.go index a958963d14509..0e9dd7833f6f6 100644 --- a/planner/core/initialize.go +++ b/planner/core/initialize.go @@ -307,7 +307,7 @@ func (p PhysicalShow) Init(ctx sessionctx.Context) *PhysicalShow { return &p } -// Init initializes PhysicalShow. +// Init initializes PhysicalShowDDLJobs. func (p PhysicalShowDDLJobs) Init(ctx sessionctx.Context) *PhysicalShowDDLJobs { p.basePhysicalPlan = newBasePhysicalPlan(ctx, TypeShowDDLJobs, &p, 0) // Just use pseudo stats to avoid panic. From 0d177f3b7bf6e3c6823a59a65b1d309b240145da Mon Sep 17 00:00:00 2001 From: crazycs520 Date: Tue, 8 Oct 2019 23:09:59 +0800 Subject: [PATCH 4/6] address comment --- planner/core/planbuilder.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/planner/core/planbuilder.go b/planner/core/planbuilder.go index 2e69ba2c2e264..c65b08389d0b0 100644 --- a/planner/core/planbuilder.go +++ b/planner/core/planbuilder.go @@ -744,15 +744,13 @@ func (b *PlanBuilder) buildAdmin(ctx context.Context, as *ast.AdminStmt) (Plan, for _, col := range p.schema.Columns { col.UniqueID = b.ctx.GetSessionVars().AllocPlanColumnID() } - var np LogicalPlan - np = p + ret = p if as.Where != nil { - np, err = b.buildSelection(ctx, np, as.Where, nil) + ret, err = b.buildSelection(ctx, p, as.Where, nil) if err != nil { return nil, err } } - ret = np case ast.AdminCancelDDLJobs: p := &CancelDDLJobs{JobIDs: as.JobIDs} p.SetSchema(buildCancelDDLJobsFields()) From 170425d777d7eb540b6e2ed0a04591b3ec48451a Mon Sep 17 00:00:00 2001 From: crazycs Date: Tue, 8 Oct 2019 23:10:05 +0800 Subject: [PATCH 5/6] Update planner/core/initialize.go Co-Authored-By: bb7133 --- planner/core/initialize.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/planner/core/initialize.go b/planner/core/initialize.go index 0e9dd7833f6f6..fc4526b21e28a 100644 --- a/planner/core/initialize.go +++ b/planner/core/initialize.go @@ -293,7 +293,7 @@ func (p LogicalShow) Init(ctx sessionctx.Context) *LogicalShow { return &p } -// Init initializes LogicalShow. +// Init initializes LogicalShowDDLJobs. func (p LogicalShowDDLJobs) Init(ctx sessionctx.Context) *LogicalShowDDLJobs { p.baseLogicalPlan = newBaseLogicalPlan(ctx, TypeShowDDLJobs, &p, 0) return &p From d1d45281b625275a255e7d7062ba1c73437c5497 Mon Sep 17 00:00:00 2001 From: crazycs520 Date: Fri, 11 Oct 2019 10:21:36 +0800 Subject: [PATCH 6/6] address comment --- executor/executor_test.go | 4 ++++ go.mod | 4 +--- go.sum | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/executor/executor_test.go b/executor/executor_test.go index cf70d10b88eba..7b3df5060e59b 100644 --- a/executor/executor_test.go +++ b/executor/executor_test.go @@ -456,6 +456,10 @@ func (s *testSuite) TestAdminShowDDLJobs(c *C) { err = tk.Se.CommitTxn(context.Background()) c.Assert(err, IsNil) + re = tk.MustQuery("admin show ddl jobs 1") + row = re.Rows()[0] + c.Assert(row[1], Equals, "test_admin_show_ddl_jobs") + re = tk.MustQuery("admin show ddl jobs 1 where job_type='create table'") row = re.Rows()[0] c.Assert(row[1], Equals, "test_admin_show_ddl_jobs") diff --git a/go.mod b/go.mod index 03e9a469462d8..dd5e03490ff35 100644 --- a/go.mod +++ b/go.mod @@ -40,7 +40,7 @@ require ( github.com/pingcap/goleveldb v0.0.0-20171020122428-b9ff6c35079e github.com/pingcap/kvproto v0.0.0-20190910074005-0e61b6f435c1 github.com/pingcap/log v0.0.0-20190715063458-479153f07ebd - github.com/pingcap/parser v0.0.0-20190923031704-33636bc5e5d6 + github.com/pingcap/parser v0.0.0-20191011021308-7586d610b7aa github.com/pingcap/pd v1.1.0-beta.0.20190923032047-5c648dc365e0 github.com/pingcap/tidb-tools v2.1.3-0.20190321065848-1e8b48f5c168+incompatible github.com/pingcap/tipb v0.0.0-20191008064422-018b2fadf414 @@ -78,5 +78,3 @@ require ( ) go 1.13 - -replace github.com/pingcap/parser => github.com/crazycs520/parser v0.0.0-20190929091254-85344bdd5ae3 diff --git a/go.sum b/go.sum index 1904e2d74b1db..40dacd628a329 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,6 @@ github.com/coreos/go-systemd v0.0.0-20181031085051-9002847aa142/go.mod h1:F5haX7 github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/crazycs520/parser v0.0.0-20190929091254-85344bdd5ae3 h1:/fZiYheQ4yHpQbPvEkUWj5DuCaEX5fInDKE4UVjwqjI= -github.com/crazycs520/parser v0.0.0-20190929091254-85344bdd5ae3/go.mod h1:xLjI+gnWYexq011WPMEvCNS8rFM9qe1vdojIEzSKPuc= github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548 h1:iwZdTE0PVqJCos1vaoKsclOGD3ADKpshg3SRtYBbwso= github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM= github.com/cznic/sortutil v0.0.0-20150617083342-4c7342852e65 h1:hxuZop6tSoOi0sxFzoGGYdRqNrPubyaIf9KoBG9tPiE= @@ -166,6 +164,8 @@ github.com/pingcap/kvproto v0.0.0-20190910074005-0e61b6f435c1 h1:DNvxkdcjA0TBIII github.com/pingcap/kvproto v0.0.0-20190910074005-0e61b6f435c1/go.mod h1:QMdbTAXCHzzygQzqcG9uVUgU2fKeSN1GmfMiykdSzzY= github.com/pingcap/log v0.0.0-20190715063458-479153f07ebd h1:hWDol43WY5PGhsh3+8794bFHY1bPrmu6bTalpssCrGg= github.com/pingcap/log v0.0.0-20190715063458-479153f07ebd/go.mod h1:WpHUKhNZ18v116SvGrmjkA9CBhYmuUTKL+p8JC9ANEw= +github.com/pingcap/parser v0.0.0-20191011021308-7586d610b7aa h1:jZtG+lBvIHjii6ClHjnEAdqsDbRobxDcVauFETBfAME= +github.com/pingcap/parser v0.0.0-20191011021308-7586d610b7aa/go.mod h1:1FNvfp9+J0wvc4kl8eGNh7Rqrxveg15jJoWo/a0uHwA= github.com/pingcap/pd v1.1.0-beta.0.20190923032047-5c648dc365e0 h1:GIEq+wZfrl2bcJxpuSrEH4H7/nlf5YdmpS+dU9lNIt8= github.com/pingcap/pd v1.1.0-beta.0.20190923032047-5c648dc365e0/go.mod h1:G/6rJpnYwM0LKMec2rI82/5Kg6GaZMvlfB+e6/tvYmI= github.com/pingcap/tidb-tools v2.1.3-0.20190321065848-1e8b48f5c168+incompatible h1:MkWCxgZpJBgY2f4HtwWMMFzSBb3+JPzeJgF3VrXE/bU=