diff --git a/optimizer/optimizer.go b/optimizer/optimizer.go index ca8794cb75..655cf2496f 100644 --- a/optimizer/optimizer.go +++ b/optimizer/optimizer.go @@ -39,18 +39,16 @@ func Optimize(ctx context.Context, node ast.Node) (plan.Plan, error) { if err != nil { return nil, errors.Trace(err) } - err = plan.Refine(p) - if err != nil { - return nil, errors.Trace(err) - } - - bestPlan := p - bestCost := plan.EstimateCost(p) - alts, err := plan.Alternatives(p) if err != nil { return nil, errors.Trace(err) } + err = plan.Refine(p) + if err != nil { + return nil, errors.Trace(err) + } + bestCost := plan.EstimateCost(p) + bestPlan := p for _, alt := range alts { err = plan.Refine(alt) if err != nil {