func buildLogicalRuleOptimizeTracerBeforeOptimize(name string, before *LogicalPlanTrace) *LogicalRuleOptimizeTracer {
	return &LogicalRuleOptimizeTracer{
		Before:   before,
		RuleName: name,
		Steps:    make([]LogicalRuleOptimizeTraceStep, 0),
	}
}
// buildLogicalRuleOptimizeTracerBeforeOptimize build rule tracer before rule optimize
buildLogicalRuleOptimizeTracerBeforeOptimize build rule tracer before rule optimize
// buildLogicalRuleOptimizeTracerBeforeOptimize build rule tracer before rule optimize
func buildLogicalRuleOptimizeTracerBeforeOptimize(name string, before *LogicalPlanTrace) *LogicalRuleOptimizeTracer {
	return &LogicalRuleOptimizeTracer{
		Before:   before,
		RuleName: name,
		Steps:    make([]LogicalRuleOptimizeTraceStep, 0),
	}
}
func buildLogicalRuleOptimizeTracerBeforeOptimize ( name string , before * LogicalPlanTrace ) * LogicalRuleOptimizeTracer { return & LogicalRuleOptimizeTracer { Before : before , RuleName : name , Steps : make ( [ ] LogicalRuleOptimizeTraceStep , 0 ) , } }
buildLogicalRuleOptimizeTracerBeforeOptimize build rule tracer before rule optimize
buildLogicalRuleOptimizeTracerBeforeOptimize build rule tracer before rule optimize