From 30f97af07fc4aecd8393a49830b35686dcb21e88 Mon Sep 17 00:00:00 2001 From: Zhe-xuan Yang Date: Thu, 19 Jan 2017 19:24:05 +0800 Subject: [PATCH] *: fixed a mistake whileing adding sqrt math func (#2513) --- expression/builtin.go | 1 + expression/builtin_math.go | 2 +- expression/builtin_math_test.go | 5 ++++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/expression/builtin.go b/expression/builtin.go index ce3e1a0871e31..750193682d834 100644 --- a/expression/builtin.go +++ b/expression/builtin.go @@ -318,6 +318,7 @@ var funcs = map[string]functionClass{ ast.Rand: &randFunctionClass{baseFunctionClass{ast.Rand, 0, 1}}, ast.Round: &roundFunctionClass{baseFunctionClass{ast.Round, 1, 2}}, ast.Sign: &signFunctionClass{baseFunctionClass{ast.Sign, 1, 1}}, + ast.Sqrt: &sqrtFunctionClass{baseFunctionClass{ast.Sqrt, 1, 1}}, ast.Conv: &convFunctionClass{baseFunctionClass{ast.Conv, 3, 3}}, ast.CRC32: &crc32FunctionClass{baseFunctionClass{ast.CRC32, 1, 1}}, diff --git a/expression/builtin_math.go b/expression/builtin_math.go index 7adc7166e92dd..945c0267816bc 100644 --- a/expression/builtin_math.go +++ b/expression/builtin_math.go @@ -559,7 +559,7 @@ type sqrtFunctionClass struct { } func (c *sqrtFunctionClass) getFunction(args []Expression, ctx context.Context) (builtinFunc, error) { - return &builtinSignSig{newBaseBuiltinFunc(args, ctx)}, errors.Trace(c.verifyArgs(args)) + return &builtinSqrtSig{newBaseBuiltinFunc(args, ctx)}, errors.Trace(c.verifyArgs(args)) } type builtinSqrtSig struct { diff --git a/expression/builtin_math_test.go b/expression/builtin_math_test.go index 723784d9dd18c..4494085b6fa62 100644 --- a/expression/builtin_math_test.go +++ b/expression/builtin_math_test.go @@ -310,7 +310,10 @@ func (s *testEvaluatorSuite) TestSqrt(c *C) { Dtbl := tblToDtbl(tbl) for _, t := range Dtbl { - v, err := builtinSqrt(t["Arg"], s.ctx) + fc := funcs[ast.Sqrt] + f, err := fc.getFunction(datumsToConstants(t["Arg"]), s.ctx) + c.Assert(err, IsNil) + v, err := f.eval(nil) c.Assert(err, IsNil) c.Assert(v, DeepEquals, t["Ret"][0], Commentf("arg:%v", t["Arg"])) }