diff --git a/evaluator/builtin/builtin.go b/evaluator/builtin.go similarity index 99% rename from evaluator/builtin/builtin.go rename to evaluator/builtin.go index 9367edb1c7..2953f0c95a 100644 --- a/evaluator/builtin/builtin.go +++ b/evaluator/builtin.go @@ -15,7 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package builtin +package evaluator import ( "github.com/juju/errors" diff --git a/evaluator/builtin/control.go b/evaluator/builtin_control.go similarity index 99% rename from evaluator/builtin/control.go rename to evaluator/builtin_control.go index 81947bf7a0..c310f3fab6 100644 --- a/evaluator/builtin/control.go +++ b/evaluator/builtin_control.go @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package builtin +package evaluator import ( "github.com/pingcap/tidb/context" diff --git a/evaluator/builtin/control_test.go b/evaluator/builtin_control_test.go similarity index 90% rename from evaluator/builtin/control_test.go rename to evaluator/builtin_control_test.go index e3b4bcdeb5..bf925d307e 100644 --- a/evaluator/builtin/control_test.go +++ b/evaluator/builtin_control_test.go @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package builtin +package evaluator import ( "errors" @@ -19,7 +19,7 @@ import ( . "github.com/pingcap/check" ) -func (s *testBuiltinSuite) TestIf(c *C) { +func (s *testEvaluatorSuite) TestIf(c *C) { tbl := []struct { Arg1 interface{} Arg2 interface{} @@ -41,7 +41,7 @@ func (s *testBuiltinSuite) TestIf(c *C) { c.Assert(err, NotNil) } -func (s *testBuiltinSuite) TestIfNull(c *C) { +func (s *testEvaluatorSuite) TestIfNull(c *C) { tbl := []struct { Arg1 interface{} Arg2 interface{} @@ -59,7 +59,7 @@ func (s *testBuiltinSuite) TestIfNull(c *C) { } } -func (s *testBuiltinSuite) TestNullIf(c *C) { +func (s *testEvaluatorSuite) TestNullIf(c *C) { tbl := []struct { Arg1 interface{} Arg2 interface{} diff --git a/evaluator/builtin/info.go b/evaluator/builtin_info.go similarity index 99% rename from evaluator/builtin/info.go rename to evaluator/builtin_info.go index f8af0bdaa1..2004c0d13c 100644 --- a/evaluator/builtin/info.go +++ b/evaluator/builtin_info.go @@ -15,7 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package builtin +package evaluator import ( "github.com/juju/errors" diff --git a/evaluator/builtin/info_test.go b/evaluator/builtin_info_test.go similarity index 83% rename from evaluator/builtin/info_test.go rename to evaluator/builtin_info_test.go index 6e66ea88d1..baa1c9e8ee 100644 --- a/evaluator/builtin/info_test.go +++ b/evaluator/builtin_info_test.go @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package builtin +package evaluator import ( . "github.com/pingcap/check" @@ -21,12 +21,7 @@ import ( "github.com/pingcap/tidb/util/mock" ) -var _ = Suite(&testBuiltinInfoSuite{}) - -type testBuiltinInfoSuite struct { -} - -func (s *testBuiltinSuite) TestDatabase(c *C) { +func (s *testEvaluatorSuite) TestDatabase(c *C) { ctx := mock.NewContext() v, err := builtinDatabase(nil, ctx) c.Assert(err, IsNil) @@ -38,7 +33,7 @@ func (s *testBuiltinSuite) TestDatabase(c *C) { c.Assert(v, Equals, "test") } -func (s *testBuiltinSuite) TestFoundRows(c *C) { +func (s *testEvaluatorSuite) TestFoundRows(c *C) { ctx := mock.NewContext() v, err := builtinFoundRows(nil, ctx) c.Assert(err, NotNil) @@ -50,7 +45,7 @@ func (s *testBuiltinSuite) TestFoundRows(c *C) { c.Assert(v, Equals, uint64(0)) } -func (s *testBuiltinSuite) TestUser(c *C) { +func (s *testEvaluatorSuite) TestUser(c *C) { ctx := mock.NewContext() variable.BindSessionVars(ctx) sessionVars := variable.GetSessionVars(ctx) @@ -61,7 +56,7 @@ func (s *testBuiltinSuite) TestUser(c *C) { c.Assert(v, Equals, "root@localhost") } -func (s *testBuiltinSuite) TestCurrentUser(c *C) { +func (s *testEvaluatorSuite) TestCurrentUser(c *C) { ctx := mock.NewContext() variable.BindSessionVars(ctx) sessionVars := variable.GetSessionVars(ctx) @@ -72,7 +67,7 @@ func (s *testBuiltinSuite) TestCurrentUser(c *C) { c.Assert(v, Equals, "root@localhost") } -func (s *testBuiltinSuite) TestConnectionID(c *C) { +func (s *testEvaluatorSuite) TestConnectionID(c *C) { ctx := mock.NewContext() variable.BindSessionVars(ctx) sessionVars := variable.GetSessionVars(ctx) @@ -83,7 +78,7 @@ func (s *testBuiltinSuite) TestConnectionID(c *C) { c.Assert(v, Equals, uint64(1)) } -func (s *testBuiltinSuite) TestVersion(c *C) { +func (s *testEvaluatorSuite) TestVersion(c *C) { ctx := mock.NewContext() v, err := builtinVersion(nil, ctx) c.Assert(err, IsNil) diff --git a/evaluator/builtin/math.go b/evaluator/builtin_math.go similarity index 99% rename from evaluator/builtin/math.go rename to evaluator/builtin_math.go index 7e4e297395..c1d39e83b7 100644 --- a/evaluator/builtin/math.go +++ b/evaluator/builtin_math.go @@ -15,7 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package builtin +package evaluator import ( "math" diff --git a/evaluator/builtin/math_test.go b/evaluator/builtin_math_test.go similarity index 91% rename from evaluator/builtin/math_test.go rename to evaluator/builtin_math_test.go index 364c7ae491..844c300d54 100644 --- a/evaluator/builtin/math_test.go +++ b/evaluator/builtin_math_test.go @@ -11,13 +11,13 @@ // See the License for the specific language governing permissions and // limitations under the License. -package builtin +package evaluator import ( . "github.com/pingcap/check" ) -func (s *testBuiltinSuite) TestAbs(c *C) { +func (s *testEvaluatorSuite) TestAbs(c *C) { tbl := []struct { Arg interface{} Ret interface{} @@ -37,14 +37,14 @@ func (s *testBuiltinSuite) TestAbs(c *C) { } } -func (s *testBuiltinSuite) TestRand(c *C) { +func (s *testEvaluatorSuite) TestRand(c *C) { v, err := builtinRand([]interface{}{}, nil) c.Assert(err, IsNil) c.Assert(v, Less, float64(1)) c.Assert(v, GreaterEqual, float64(0)) } -func (s *testBuiltinSuite) TestPow(c *C) { +func (s *testEvaluatorSuite) TestPow(c *C) { tbl := []struct { Arg []interface{} Ret float64 diff --git a/evaluator/builtin/string.go b/evaluator/builtin_string.go similarity index 99% rename from evaluator/builtin/string.go rename to evaluator/builtin_string.go index b4efdf5834..2431b5270a 100644 --- a/evaluator/builtin/string.go +++ b/evaluator/builtin_string.go @@ -15,7 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package builtin +package evaluator import ( "fmt" diff --git a/evaluator/builtin/string_test.go b/evaluator/builtin_string_test.go similarity index 92% rename from evaluator/builtin/string_test.go rename to evaluator/builtin_string_test.go index 204335d097..88469bde6b 100644 --- a/evaluator/builtin/string_test.go +++ b/evaluator/builtin_string_test.go @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package builtin +package evaluator import ( "errors" @@ -22,7 +22,7 @@ import ( "github.com/pingcap/tidb/mysql" ) -func (s *testBuiltinSuite) TestLength(c *C) { +func (s *testEvaluatorSuite) TestLength(c *C) { v, err := builtinLength([]interface{}{nil}, nil) c.Assert(err, IsNil) c.Assert(v, IsNil) @@ -47,7 +47,7 @@ func (s *testBuiltinSuite) TestLength(c *C) { } } -func (s *testBuiltinSuite) TestConcat(c *C) { +func (s *testEvaluatorSuite) TestConcat(c *C) { args := []interface{}{nil} v, err := builtinConcat(args, nil) @@ -69,7 +69,7 @@ func (s *testBuiltinSuite) TestConcat(c *C) { c.Assert(err, NotNil) } -func (s *testBuiltinSuite) TestConcatWS(c *C) { +func (s *testEvaluatorSuite) TestConcatWS(c *C) { args := []interface{}{nil} v, err := builtinConcatWS(args, nil) @@ -86,7 +86,7 @@ func (s *testBuiltinSuite) TestConcatWS(c *C) { c.Assert(err, NotNil) } -func (s *testBuiltinSuite) TestLeft(c *C) { +func (s *testEvaluatorSuite) TestLeft(c *C) { args := []interface{}{"abcdefg", int64(2)} v, err := builtinLeft(args, nil) c.Assert(err, IsNil) @@ -111,7 +111,7 @@ func (s *testBuiltinSuite) TestLeft(c *C) { c.Assert(err, NotNil) } -func (s *testBuiltinSuite) TestRepeat(c *C) { +func (s *testEvaluatorSuite) TestRepeat(c *C) { args := []interface{}{"a", int64(2)} v, err := builtinRepeat(args, nil) c.Assert(err, IsNil) @@ -138,7 +138,7 @@ func (s *testBuiltinSuite) TestRepeat(c *C) { c.Assert(v, Equals, "") } -func (s *testBuiltinSuite) TestLowerAndUpper(c *C) { +func (s *testEvaluatorSuite) TestLowerAndUpper(c *C) { v, err := builtinLower([]interface{}{nil}, nil) c.Assert(err, IsNil) c.Assert(v, IsNil) @@ -167,7 +167,7 @@ func (s *testBuiltinSuite) TestLowerAndUpper(c *C) { } } -func (s *testBuiltinSuite) TestStrcmp(c *C) { +func (s *testEvaluatorSuite) TestStrcmp(c *C) { tbl := []struct { Input []interface{} Expect interface{} @@ -194,7 +194,7 @@ func (s *testBuiltinSuite) TestStrcmp(c *C) { } } -func (s *testBuiltinSuite) TestReplace(c *C) { +func (s *testEvaluatorSuite) TestReplace(c *C) { tbl := []struct { Input []interface{} Expect interface{} diff --git a/evaluator/builtin/builtin_test.go b/evaluator/builtin_test.go similarity index 80% rename from evaluator/builtin/builtin_test.go rename to evaluator/builtin_test.go index 498e2efb34..d63403039e 100644 --- a/evaluator/builtin/builtin_test.go +++ b/evaluator/builtin_test.go @@ -11,24 +11,13 @@ // See the License for the specific language governing permissions and // limitations under the License. -package builtin +package evaluator import ( - "testing" - . "github.com/pingcap/check" ) -func TestT(t *testing.T) { - TestingT(t) -} - -var _ = Suite(&testBuiltinSuite{}) - -type testBuiltinSuite struct { -} - -func (s *testBuiltinSuite) TestCoalesce(c *C) { +func (s *testEvaluatorSuite) TestCoalesce(c *C) { args := []interface{}{1, nil} v, err := builtinCoalesce(args, nil) c.Assert(err, IsNil) diff --git a/evaluator/builtin/time.go b/evaluator/builtin_time.go similarity index 99% rename from evaluator/builtin/time.go rename to evaluator/builtin_time.go index 91e06f902d..e4112a7b47 100644 --- a/evaluator/builtin/time.go +++ b/evaluator/builtin_time.go @@ -15,7 +15,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package builtin +package evaluator import ( "time" diff --git a/evaluator/builtin/time_test.go b/evaluator/builtin_time_test.go similarity index 96% rename from evaluator/builtin/time_test.go rename to evaluator/builtin_time_test.go index 49241e4f2d..9891ab7aec 100644 --- a/evaluator/builtin/time_test.go +++ b/evaluator/builtin_time_test.go @@ -11,7 +11,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package builtin +package evaluator import ( "strings" @@ -21,7 +21,7 @@ import ( "github.com/pingcap/tidb/mysql" ) -func (s *testBuiltinSuite) TestDate(c *C) { +func (s *testEvaluatorSuite) TestDate(c *C) { tblDate := []struct { Input interface{} Expect interface{} @@ -167,7 +167,7 @@ func (s *testBuiltinSuite) TestDate(c *C) { } } -func (s *testBuiltinSuite) TestClock(c *C) { +func (s *testEvaluatorSuite) TestClock(c *C) { // test hour, minute, second, micro second tbl := []struct { @@ -237,7 +237,7 @@ func (s *testBuiltinSuite) TestClock(c *C) { } } -func (s *testBuiltinSuite) TestNow(c *C) { +func (s *testEvaluatorSuite) TestNow(c *C) { v, err := builtinNow(nil, nil) c.Assert(err, IsNil) t, ok := v.(mysql.Time) @@ -259,7 +259,7 @@ func (s *testBuiltinSuite) TestNow(c *C) { c.Assert(err, NotNil) } -func (s *testBuiltinSuite) TestSysDate(c *C) { +func (s *testEvaluatorSuite) TestSysDate(c *C) { last := time.Now() v, err := builtinSysDate(nil, nil) c.Assert(err, IsNil) @@ -277,7 +277,7 @@ func (s *testBuiltinSuite) TestSysDate(c *C) { c.Assert(err, NotNil) } -func (s *testBuiltinSuite) TestCurrentDate(c *C) { +func (s *testEvaluatorSuite) TestCurrentDate(c *C) { last := time.Now() v, err := builtinCurrentDate(nil, nil) c.Assert(err, IsNil) @@ -286,7 +286,7 @@ func (s *testBuiltinSuite) TestCurrentDate(c *C) { c.Assert(n.String(), GreaterEqual, last.Format(mysql.DateFormat)) } -func (s *testBuiltinSuite) TestCurrentTime(c *C) { +func (s *testEvaluatorSuite) TestCurrentTime(c *C) { tfStr := "15:04:05" last := time.Now() diff --git a/evaluator/evaluator.go b/evaluator/evaluator.go index a7def07a2d..4e61203f62 100644 --- a/evaluator/evaluator.go +++ b/evaluator/evaluator.go @@ -21,7 +21,6 @@ import ( "github.com/juju/errors" "github.com/pingcap/tidb/ast" "github.com/pingcap/tidb/context" - "github.com/pingcap/tidb/evaluator/builtin" "github.com/pingcap/tidb/mysql" "github.com/pingcap/tidb/parser/opcode" "github.com/pingcap/tidb/sessionctx/variable" @@ -668,7 +667,7 @@ func (e *Evaluator) variable(v *ast.VariableExpr) bool { } func (e *Evaluator) funcCall(v *ast.FuncCallExpr) bool { - f, ok := builtin.Funcs[v.FnName.L] + f, ok := Funcs[v.FnName.L] if !ok { e.err = ErrInvalidOperation.Gen("unknown function %s", v.FnName.O) return false