Skip to content

Commit

Permalink
planner: move logical show ddl jobs to logicalop pkg. (#54930)
Browse files Browse the repository at this point in the history
ref #51664, ref #52714
  • Loading branch information
AilinKid authored Jul 29, 2024
1 parent 247b06e commit 9bda5d2
Show file tree
Hide file tree
Showing 10 changed files with 16 additions and 21 deletions.
1 change: 0 additions & 1 deletion pkg/planner/core/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ go_library(
"logical_projection.go",
"logical_selection.go",
"logical_sequence.go",
"logical_show_ddl_jobs.go",
"logical_sort.go",
"logical_table_dual.go",
"logical_table_scan.go",
Expand Down
1 change: 1 addition & 0 deletions pkg/planner/core/core_init.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ func init() {
utilfuncp.FindBestTask4LogicalShow = findBestTask4LogicalShow
utilfuncp.FindBestTask4LogicalCTETable = findBestTask4LogicalCTETable
utilfuncp.FindBestTask4LogicalMemTable = findBestTask4LogicalMemTable
utilfuncp.FindBestTask4LogicalShowDDLJobs = findBestTask4LogicalShowDDLJobs
utilfuncp.ExhaustPhysicalPlans4LogicalMaxOneRow = exhaustPhysicalPlans4LogicalMaxOneRow

utilfuncp.AppendCandidate4PhysicalOptimizeOp = appendCandidate4PhysicalOptimizeOp
Expand Down
3 changes: 2 additions & 1 deletion pkg/planner/core/find_best_task.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,8 @@ func findBestTask4LogicalShow(lp base.LogicalPlan, prop *property.PhysicalProper
return rt, 1, nil
}

func findBestTask4LogicalShowDDLJobs(p *LogicalShowDDLJobs, prop *property.PhysicalProperty, planCounter *base.PlanCounterTp, _ *optimizetrace.PhysicalOptimizeOp) (base.Task, int64, error) {
func findBestTask4LogicalShowDDLJobs(lp base.LogicalPlan, prop *property.PhysicalProperty, planCounter *base.PlanCounterTp, _ *optimizetrace.PhysicalOptimizeOp) (base.Task, int64, error) {
p := lp.(*logicalop.LogicalShowDDLJobs)
if !prop.IsSortItemEmpty() || planCounter.Empty() {
return base.InvalidTask, 0, nil
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/planner/core/logical_plans.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ var (
_ base.LogicalPlan = &LogicalUnionScan{}
_ base.LogicalPlan = &logicalop.LogicalMemTable{}
_ base.LogicalPlan = &logicalop.LogicalShow{}
_ base.LogicalPlan = &LogicalShowDDLJobs{}
_ base.LogicalPlan = &logicalop.LogicalShowDDLJobs{}
_ base.LogicalPlan = &LogicalCTE{}
_ base.LogicalPlan = &logicalop.LogicalCTETable{}
_ base.LogicalPlan = &LogicalSequence{}
Expand Down
1 change: 1 addition & 0 deletions pkg/planner/core/operator/logicalop/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ go_library(
"logical_mem_table.go",
"logical_schema_producer.go",
"logical_show.go",
"logical_show_ddl_jobs.go",
],
importpath = "github.com/pingcap/tidb/pkg/planner/core/operator/logicalop",
visibility = ["//visibility:public"],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,27 +12,27 @@
// See the License for the specific language governing permissions and
// limitations under the License.

package core
package logicalop

import (
"github.com/pingcap/tidb/pkg/expression"
"github.com/pingcap/tidb/pkg/planner/core/base"
"github.com/pingcap/tidb/pkg/planner/core/operator/logicalop"
"github.com/pingcap/tidb/pkg/planner/property"
"github.com/pingcap/tidb/pkg/planner/util/optimizetrace"
"github.com/pingcap/tidb/pkg/planner/util/utilfuncp"
"github.com/pingcap/tidb/pkg/util/plancodec"
)

// LogicalShowDDLJobs is for showing DDL job list.
type LogicalShowDDLJobs struct {
logicalop.LogicalSchemaProducer
LogicalSchemaProducer

JobNumber int64
}

// Init initializes LogicalShowDDLJobs.
func (p LogicalShowDDLJobs) Init(ctx base.PlanContext) *LogicalShowDDLJobs {
p.BaseLogicalPlan = logicalop.NewBaseLogicalPlan(ctx, plancodec.TypeShowDDLJobs, &p, 0)
p.BaseLogicalPlan = NewBaseLogicalPlan(ctx, plancodec.TypeShowDDLJobs, &p, 0)
return &p
}

Expand All @@ -46,7 +46,7 @@ func (p LogicalShowDDLJobs) Init(ctx base.PlanContext) *LogicalShowDDLJobs {

// FindBestTask implements the base.LogicalPlan.<3rd> interface.
func (p *LogicalShowDDLJobs) FindBestTask(prop *property.PhysicalProperty, planCounter *base.PlanCounterTp, _ *optimizetrace.PhysicalOptimizeOp) (base.Task, int64, error) {
return findBestTask4LogicalShowDDLJobs(p, prop, planCounter, nil)
return utilfuncp.FindBestTask4LogicalShowDDLJobs(p, prop, planCounter, nil)
}

// BuildKeyInfo inherits the BaseLogicalPlan.<4th> interface.
Expand Down
2 changes: 1 addition & 1 deletion pkg/planner/core/planbuilder.go
Original file line number Diff line number Diff line change
Expand Up @@ -1398,7 +1398,7 @@ func (b *PlanBuilder) buildAdmin(ctx context.Context, as *ast.AdminStmt) (base.P
p.setSchemaAndNames(buildShowDDLFields())
ret = p
case ast.AdminShowDDLJobs:
p := LogicalShowDDLJobs{JobNumber: as.JobNumber}.Init(b.ctx)
p := logicalop.LogicalShowDDLJobs{JobNumber: as.JobNumber}.Init(b.ctx)
p.SetSchemaAndNames(buildShowDDLJobsFields())
for _, col := range p.Schema().Columns {
col.UniqueID = b.ctx.GetSessionVars().AllocPlanColumnID()
Expand Down
11 changes: 0 additions & 11 deletions pkg/planner/core/stats.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,17 +47,6 @@ func (p *basePhysicalPlan) StatsCount() float64 {
return p.StatsInfo().RowCount
}

func getFakeStats(schema *expression.Schema) *property.StatsInfo {
profile := &property.StatsInfo{
RowCount: 1,
ColNDVs: make(map[int64]float64, schema.Len()),
}
for _, col := range schema.Columns {
profile.ColNDVs[col.UniqueID] = 1
}
return profile
}

// RecursiveDeriveStats4Test is a exporter just for test.
func RecursiveDeriveStats4Test(p base.LogicalPlan) (*property.StatsInfo, error) {
return p.RecursiveDeriveStats(nil)
Expand Down
2 changes: 1 addition & 1 deletion pkg/planner/core/stringer.go
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ func toString(in base.Plan, strs []string, idxs []int) ([]string, []int) {
if pl := in.(*PhysicalShow); pl.Extractor != nil {
str = str + "(" + pl.Extractor.ExplainInfo() + ")"
}
case *LogicalShowDDLJobs, *PhysicalShowDDLJobs:
case *logicalop.LogicalShowDDLJobs, *PhysicalShowDDLJobs:
str = "ShowDDLJobs"
case *LogicalSort, *PhysicalSort:
str = "Sort"
Expand Down
4 changes: 4 additions & 0 deletions pkg/planner/util/utilfuncp/func_pointer_misc.go
Original file line number Diff line number Diff line change
Expand Up @@ -105,3 +105,7 @@ var FindBestTask4LogicalMemTable func(lp base.LogicalPlan, prop *property.Physic
// FindBestTask4LogicalShow will be called by LogicalShow in logicalOp pkg.
var FindBestTask4LogicalShow func(lp base.LogicalPlan, prop *property.PhysicalProperty, planCounter *base.PlanCounterTp,
_ *optimizetrace.PhysicalOptimizeOp) (base.Task, int64, error)

// FindBestTask4LogicalShowDDLJobs will be called by LogicalShowDDLJobs in logicalOp pkg.
var FindBestTask4LogicalShowDDLJobs func(lp base.LogicalPlan, prop *property.PhysicalProperty,
planCounter *base.PlanCounterTp, _ *optimizetrace.PhysicalOptimizeOp) (base.Task, int64, error)

0 comments on commit 9bda5d2

Please sign in to comment.