Skip to content

Commit

Permalink
cherry pick pingcap#24670 to release-5.0
Browse files Browse the repository at this point in the history
Signed-off-by: ti-srebot <[email protected]>
  • Loading branch information
fzhedu authored and ti-srebot committed May 20, 2021
1 parent 41c0f17 commit ec8566d
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
26 changes: 26 additions & 0 deletions expression/expression.go
Original file line number Diff line number Diff line change
Expand Up @@ -1109,11 +1109,37 @@ func canFuncBePushed(sf *ScalarFunction, storeType kv.StoreType) bool {
tipb.ScalarFuncSig_Substring3ArgsUTF8:
ret = true
}
<<<<<<< HEAD
case ast.Rand:
switch sf.Function.PbCode() {
case
tipb.ScalarFuncSig_RandWithSeedFirstGen:
ret = true
=======
case ast.Cast:
switch function.Function.PbCode() {
case tipb.ScalarFuncSig_CastIntAsInt, tipb.ScalarFuncSig_CastIntAsDecimal, tipb.ScalarFuncSig_CastIntAsString, tipb.ScalarFuncSig_CastIntAsTime,
tipb.ScalarFuncSig_CastRealAsInt, tipb.ScalarFuncSig_CastRealAsDecimal, tipb.ScalarFuncSig_CastRealAsString, tipb.ScalarFuncSig_CastRealAsTime,
tipb.ScalarFuncSig_CastStringAsInt, tipb.ScalarFuncSig_CastStringAsDecimal, tipb.ScalarFuncSig_CastStringAsString, tipb.ScalarFuncSig_CastStringAsTime,
tipb.ScalarFuncSig_CastDecimalAsInt, tipb.ScalarFuncSig_CastDecimalAsDecimal, tipb.ScalarFuncSig_CastDecimalAsString, tipb.ScalarFuncSig_CastDecimalAsTime,
tipb.ScalarFuncSig_CastTimeAsInt, tipb.ScalarFuncSig_CastTimeAsDecimal, tipb.ScalarFuncSig_CastTimeAsTime, tipb.ScalarFuncSig_CastIntAsReal, tipb.ScalarFuncSig_CastRealAsReal:
return true
}
case ast.DateAdd:
switch function.Function.PbCode() {
case tipb.ScalarFuncSig_AddDateDatetimeInt, tipb.ScalarFuncSig_AddDateStringInt:
return true
}
case ast.Round:
switch function.Function.PbCode() {
case tipb.ScalarFuncSig_RoundInt, tipb.ScalarFuncSig_RoundReal:
return true
}
case ast.Extract:
switch function.Function.PbCode() {
case tipb.ScalarFuncSig_ExtractDatetime:
return true
>>>>>>> 5be8a6563... expression: support cast real/int as real (#24670)
}
}
if ret {
Expand Down
5 changes: 5 additions & 0 deletions planner/core/testdata/integration_serial_suite_out.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,13 @@
{
"SQL": "explain format = 'brief' select * from t where cast(t.a as float) + 3 = 5.1",
"Plan": [
<<<<<<< HEAD
"Selection 10000.00 root eq(plus(cast(test.t.a), 3), 5.1)",
"└─TableReader 10000.00 root data:TableFullScan",
=======
"TableReader 8000.00 root data:Selection",
"└─Selection 8000.00 cop[tiflash] eq(plus(cast(test.t.a, float BINARY), 3), 5.1)",
>>>>>>> 5be8a6563... expression: support cast real/int as real (#24670)
" └─TableFullScan 10000.00 cop[tiflash] table:t keep order:false, stats:pseudo"
]
},
Expand Down

0 comments on commit ec8566d

Please sign in to comment.