From e3750c23bdbd9e3d766f4c739cf151e07b07245e Mon Sep 17 00:00:00 2001 From: winkyao Date: Sun, 24 Mar 2019 11:52:39 +0800 Subject: [PATCH 1/2] privilege: add drop_priv check when truncate table --- planner/core/logical_plan_test.go | 1 + planner/core/planbuilder.go | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/planner/core/logical_plan_test.go b/planner/core/logical_plan_test.go index 9088421ffddf6..2e44bfc3ab26c 100644 --- a/planner/core/logical_plan_test.go +++ b/planner/core/logical_plan_test.go @@ -1536,6 +1536,7 @@ func (s *testPlanSuite) TestVisitInfo(c *C) { sql: "truncate table t", ans: []visitInfo{ {mysql.DeletePriv, "test", "t", "", nil}, + {mysql.DropPriv, "test", "t", "", nil}, }, }, { diff --git a/planner/core/planbuilder.go b/planner/core/planbuilder.go index f32e26239cac2..17889c64e80fd 100644 --- a/planner/core/planbuilder.go +++ b/planner/core/planbuilder.go @@ -1575,6 +1575,12 @@ func (b *PlanBuilder) buildDDL(node ast.DDLNode) (Plan, error) { table: v.Table.Name.L, err: nil, }) + b.visitInfo = append(b.visitInfo, visitInfo{ + privilege: mysql.DropPriv, + db: v.Table.Schema.L, + table: v.Table.Name.L, + err: nil, + }) case *ast.RenameTableStmt: b.visitInfo = append(b.visitInfo, visitInfo{ privilege: mysql.AlterPriv, From f5d5d503d06d53779c6833424f7b6fa1c11dc753 Mon Sep 17 00:00:00 2001 From: winkyao Date: Sun, 24 Mar 2019 16:37:51 +0800 Subject: [PATCH 2/2] remove delete priv --- planner/core/logical_plan_test.go | 1 - planner/core/planbuilder.go | 6 ------ 2 files changed, 7 deletions(-) diff --git a/planner/core/logical_plan_test.go b/planner/core/logical_plan_test.go index 2e44bfc3ab26c..04ef4c6ad5102 100644 --- a/planner/core/logical_plan_test.go +++ b/planner/core/logical_plan_test.go @@ -1535,7 +1535,6 @@ func (s *testPlanSuite) TestVisitInfo(c *C) { { sql: "truncate table t", ans: []visitInfo{ - {mysql.DeletePriv, "test", "t", "", nil}, {mysql.DropPriv, "test", "t", "", nil}, }, }, diff --git a/planner/core/planbuilder.go b/planner/core/planbuilder.go index 17889c64e80fd..994c56ae03afc 100644 --- a/planner/core/planbuilder.go +++ b/planner/core/planbuilder.go @@ -1569,12 +1569,6 @@ func (b *PlanBuilder) buildDDL(node ast.DDLNode) (Plan, error) { }) } case *ast.TruncateTableStmt: - b.visitInfo = append(b.visitInfo, visitInfo{ - privilege: mysql.DeletePriv, - db: v.Table.Schema.L, - table: v.Table.Name.L, - err: nil, - }) b.visitInfo = append(b.visitInfo, visitInfo{ privilege: mysql.DropPriv, db: v.Table.Schema.L,