Skip to content

Commit

Permalink
expression : prevent function DATE_ADD/SUB_STRING_XXX pushed down to …
Browse files Browse the repository at this point in the history
…TiFlash (#30154)
  • Loading branch information
mengxin9014 committed Nov 25, 2021
1 parent bee016b commit e15b768
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 6 deletions.
4 changes: 0 additions & 4 deletions expression/expr_to_pb_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -853,10 +853,6 @@ func TestExprPushDownToFlash(t *testing.T) {
require.NoError(t, err)
require.Equal(t, tipb.ScalarFuncSig_SubDateDatetimeInt, function.(*ScalarFunction).Function.PbCode())
exprs = append(exprs, function)
function, err = NewFunction(mock.NewContext(), ast.DateSub, types.NewFieldType(mysql.TypeDatetime), stringColumn, intColumn, stringColumn)
require.NoError(t, err)
require.Equal(t, tipb.ScalarFuncSig_SubDateStringInt, function.(*ScalarFunction).Function.PbCode())
exprs = append(exprs, function)
function, err = NewFunction(mock.NewContext(), ast.SubDate, types.NewFieldType(mysql.TypeDatetime), datetimeColumn, intColumn, stringColumn)
require.NoError(t, err)
require.Equal(t, tipb.ScalarFuncSig_SubDateDatetimeInt, function.(*ScalarFunction).Function.PbCode())
Expand Down
4 changes: 2 additions & 2 deletions expression/expression.go
Original file line number Diff line number Diff line change
Expand Up @@ -1094,12 +1094,12 @@ func scalarExprSupportedByFlash(function *ScalarFunction) bool {
}
case ast.DateAdd, ast.AddDate:
switch function.Function.PbCode() {
case tipb.ScalarFuncSig_AddDateDatetimeInt, tipb.ScalarFuncSig_AddDateStringInt, tipb.ScalarFuncSig_AddDateStringReal:
case tipb.ScalarFuncSig_AddDateDatetimeInt:
return true
}
case ast.DateSub, ast.SubDate:
switch function.Function.PbCode() {
case tipb.ScalarFuncSig_SubDateDatetimeInt, tipb.ScalarFuncSig_SubDateStringInt:
case tipb.ScalarFuncSig_SubDateDatetimeInt:
return true
}
case ast.UnixTimestamp:
Expand Down

0 comments on commit e15b768

Please sign in to comment.