func (e *Evaluator) funcCast(v *ast.FuncCastExpr) bool { d := *v.Expr.GetDatum() // Casting nil to any type returns null if d.IsNull() { v.SetNull() return true } var err error d, err = d.Cast(v.Tp) if err != nil { e.err = errors.Trace(err) return false } v.SetDatum(d) return true }
func (e *Evaluator) funcCast(v *ast.FuncCastExpr) bool { value := v.Expr.GetValue() // Casting nil to any type returns null if value == nil { v.SetValue(nil) return true } var err error value, err = types.Cast(value, v.Tp) if err != nil { e.err = errors.Trace(err) return false } v.SetValue(value) return true }