diff --git a/expression/column.go b/expression/column.go index 058f0314ba..15b137c88f 100644 --- a/expression/column.go +++ b/expression/column.go @@ -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