milvus/internal/parser/planparserv2/node_ret.go
Jiquan Long 2a517d2da1
Fix expression incompatible between parser and executor (#26493)
Signed-off-by: longjiquan <jiquan.long@zilliz.com>
2023-08-21 19:36:20 +08:00

42 lines
918 B
Go

package planparserv2
import (
"github.com/milvus-io/milvus-proto/go-api/v2/schemapb"
"github.com/milvus-io/milvus/internal/proto/planpb"
)
type ExprWithType struct {
expr *planpb.Expr
dataType schemapb.DataType
// ExprWithType can be a node only when nodeDependent is set to false.
// For example, a column expression or a value expression itself cannot be an expression node independently.
// Unless our execution backend can support them.
nodeDependent bool
}
func getError(obj interface{}) error {
err, ok := obj.(error)
if !ok {
// obj is not an error.
return nil
}
return err
}
func getExpr(obj interface{}) *ExprWithType {
n, ok := obj.(*ExprWithType)
if !ok {
// obj is not of *ExprWithType
return nil
}
return n
}
func getGenericValue(obj interface{}) *planpb.GenericValue {
expr := getExpr(obj)
if expr == nil {
return nil
}
return expr.expr.GetValueExpr().GetValue()
}