diff --git a/expression/builtin_time_test.go b/expression/builtin_time_test.go index cf2397d8e1..74b0c742ec 100644 --- a/expression/builtin_time_test.go +++ b/expression/builtin_time_test.go @@ -1059,6 +1059,17 @@ func (s *testEvaluatorSuite) TestSysDate(c *C) { c.Assert(err, IsNil) n := v.GetMysqlTime() c.Assert(n.String(), GreaterEqual, last.Format(types.TimeFormat)) + + baseFunc, _, input, output := genVecBuiltinFuncBenchCase(ctx, ast.Sysdate, vecExprBenchCase{retEvalType: types.ETDatetime}) + resetStmtContext(s.ctx) + err = baseFunc.vecEvalTime(input, output) + c.Assert(err, IsNil) + last = time.Now() + times := output.Times() + for i := 0; i < 1024; i++ { + c.Assert(times[i].String(), GreaterEqual, last.Format(types.TimeFormat)) + } + } last := time.Now() diff --git a/expression/builtin_time_vec.go b/expression/builtin_time_vec.go index 33679848e1..bb89095ef5 100644 --- a/expression/builtin_time_vec.go +++ b/expression/builtin_time_vec.go @@ -183,12 +183,8 @@ func (b *builtinSysDateWithoutFspSig) vectorized() bool { func (b *builtinSysDateWithoutFspSig) vecEvalTime(input *chunk.Chunk, result *chunk.Column) error { n := input.NumRows() loc := b.ctx.GetSessionVars().Location() - nowTs, err := getStmtTimestamp(b.ctx) - if err != nil { - return err - } + now := time.Now().In(loc) - now := nowTs.In(loc) result.ResizeTime(n, false) times := result.Times() t, err := convertTimeToMysqlTime(now, 0, types.ModeHalfEven) diff --git a/expression/builtin_time_vec_test.go b/expression/builtin_time_vec_test.go index c531cc36de..dd742b73a2 100644 --- a/expression/builtin_time_vec_test.go +++ b/expression/builtin_time_vec_test.go @@ -219,7 +219,10 @@ var vecBuiltinTimeCases = map[string][]vecExprBenchCase{ }, }, ast.Sysdate: { - {retEvalType: types.ETDatetime}, + // Because there is a chance that a time error will cause the test to fail, + // we cannot use the vectorized test framework to test builtinSysDateWithoutFspSig. + // We test the builtinSysDateWithoutFspSig in TestSysDate function. + // {retEvalType: types.ETDatetime}, }, }