mirror of https://github.com/milvus-io/milvus.git
46 lines
946 B
Go
46 lines
946 B
Go
package planner
|
|
|
|
import "github.com/moznion/go-optional"
|
|
|
|
type NodeSqlStatement struct {
|
|
baseNode
|
|
DmlStatement optional.Option[*NodeDmlStatement]
|
|
}
|
|
|
|
func (n *NodeSqlStatement) String() string {
|
|
return "NodeSqlStatement"
|
|
}
|
|
|
|
func (n *NodeSqlStatement) GetChildren() []Node {
|
|
if n.DmlStatement.IsSome() {
|
|
return []Node{n.DmlStatement.Unwrap()}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (n *NodeSqlStatement) Accept(v Visitor) interface{} {
|
|
return v.VisitSqlStatement(n)
|
|
}
|
|
|
|
type NodeSqlStatementOption func(*NodeSqlStatement)
|
|
|
|
func (n *NodeSqlStatement) apply(opts ...NodeSqlStatementOption) {
|
|
for _, opt := range opts {
|
|
opt(n)
|
|
}
|
|
}
|
|
|
|
func WithDmlStatement(s *NodeDmlStatement) NodeSqlStatementOption {
|
|
return func(n *NodeSqlStatement) {
|
|
n.DmlStatement = optional.Some(s)
|
|
}
|
|
}
|
|
|
|
func NewNodeSqlStatement(text string, opts ...NodeSqlStatementOption) *NodeSqlStatement {
|
|
n := &NodeSqlStatement{
|
|
baseNode: newBaseNode(text),
|
|
}
|
|
n.apply(opts...)
|
|
return n
|
|
}
|