Skip to content

Commit

Permalink
expression: push down EXTRACT Duration to TiFlash (pingcap#39105)
Browse files Browse the repository at this point in the history
  • Loading branch information
birdstorm authored Nov 16, 2022
1 parent 154f027 commit ce69f0b
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
8 changes: 8 additions & 0 deletions expression/expr_to_pb_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -558,6 +558,14 @@ func TestExprPushDownToFlash(t *testing.T) {
require.NoError(t, err)
exprs = append(exprs, function)

// ExtractDuration
extractDurationUnitCol := new(Constant)
extractDurationUnitCol.Value = types.NewStringDatum("microsecond")
extractDurationUnitCol.RetType = types.NewFieldType(mysql.TypeString)
function, err = NewFunction(mock.NewContext(), ast.Extract, types.NewFieldType(mysql.TypeLonglong), extractDurationUnitCol, durationColumn)
require.NoError(t, err)
exprs = append(exprs, function)

// CastIntAsInt
function, err = NewFunction(mock.NewContext(), ast.Cast, types.NewFieldType(mysql.TypeLonglong), intColumn)
require.NoError(t, err)
Expand Down
2 changes: 1 addition & 1 deletion expression/expression.go
Original file line number Diff line number Diff line change
Expand Up @@ -1227,7 +1227,7 @@ func scalarExprSupportedByFlash(function *ScalarFunction) bool {
}
case ast.Extract:
switch function.Function.PbCode() {
case tipb.ScalarFuncSig_ExtractDatetime:
case tipb.ScalarFuncSig_ExtractDatetime, tipb.ScalarFuncSig_ExtractDuration:
return true
}
case ast.Replace:
Expand Down

0 comments on commit ce69f0b

Please sign in to comment.