func (er *expressionRewriter) castToScalarFunc(v *ast.FuncCastExpr) { bt, err := evaluator.CastFuncFactory(v.Tp) if err != nil { er.err = errors.Trace(err) return } function := &expression.ScalarFunction{ Args: []expression.Expression{er.ctxStack[len(er.ctxStack)-1]}, FuncName: model.NewCIStr("cast"), RetType: v.Tp, Function: bt} er.ctxStack[len(er.ctxStack)-1] = function }
func (er *expressionRewriter) castToScalarFunc(v *ast.FuncCastExpr) { bt, err := evaluator.CastFuncFactory(v.Tp) if err != nil { er.err = errors.Trace(err) return } er.checkArgsOneColumn(er.ctxStack[len(er.ctxStack)-1]) if er.err != nil { return } function := &expression.ScalarFunction{ Args: []expression.Expression{er.ctxStack[len(er.ctxStack)-1]}, FuncName: model.NewCIStr(ast.Cast), RetType: v.Tp, Function: bt, ArgValues: make([]types.Datum, 1)} er.ctxStack[len(er.ctxStack)-1] = function }