expression: fix wrong EqualByExprAndID (#26829)

This commit is contained in:
wjHuang
2021-08-03 17:47:08 +08:00
committed by GitHub
parent bf7e353f68
commit 2ac40194da

View File

@ -235,7 +235,7 @@ func (col *Column) Equal(_ sessionctx.Context, expr Expression) bool {
func (col *Column) EqualByExprAndID(_ sessionctx.Context, expr Expression) bool {
if newCol, ok := expr.(*Column); ok {
expr, isOk := col.VirtualExpr.(*ScalarFunction)
isVirExprMatched := isOk && expr.Equal(nil, newCol.VirtualExpr)
isVirExprMatched := isOk && expr.Equal(nil, newCol.VirtualExpr) && expr.RetType.Equal(newCol.RetType)
return (newCol.UniqueID == col.UniqueID) || isVirExprMatched
}
return false