featurebase/sql3/planner/compiledropmodel.go
Pat Okeeffe 284f62dcb9
create model, create function... all the goodies (#2264)
* create function, create/drop model; re-introduced limit; added COPY; var(); corr()

* review feedback
2023-04-04 17:44:29 -05:00

26 lines
890 B
Go

// Copyright 2023 Molecula Corp. All rights reserved.
package planner
import (
"github.com/featurebasedb/featurebase/v3/sql3"
"github.com/featurebasedb/featurebase/v3/sql3/parser"
"github.com/featurebasedb/featurebase/v3/sql3/planner/types"
)
// compileDropModelStatement compiles a DROP MODEL statement into a PlanOperator.
func (p *ExecutionPlanner) compileDropModelStatement(stmt *parser.DropModelStatement) (_ types.PlanOperator, err error) {
modelName := parser.IdentName(stmt.Name)
v, err := p.getModelByName(modelName)
if err != nil {
return nil, err
}
if v == nil && !stmt.IfExists.IsValid() {
return nil, sql3.NewErrModelNotFound(0, 0, modelName)
}
dropModel := NewPlanOpDropModel(p, stmt.IfExists.IsValid(), modelName)
dropModel.AddWarning("🦖 here there be dragons! DROP MODEL statement is experimental.")
return NewPlanOpQuery(p, dropModel, p.sql), nil
}