Copilot commented on code in PR #55293:
URL: https://github.com/apache/arrow/pull/55293#discussion_r4532187350
##########
cpp/src/arrow/compute/expression.cc:
##########
@@ -1305,9 +1459,9 @@ struct Inequality {
break;
}
- std::string func_name = Comparison::GetName(guarantee.cmp);
+ std::string func_name = Comparison::GetName(cmp);
DCHECK_NE(func_name, "na");
- std::vector<Datum> args{options->value_set, guarantee.bound};
+ std::vector<Datum> args{options->value_set, bound};
Review Comment:
For `is_in(cast(f64, float32), float64[51.00000001])` under `f64 <=
51.00000001`, the kernel rounds both the row and lookup entry to `51f`, so the
row matches. This comparison instead drops the original double entry against
the rounded bound, simplifying the filter to false and potentially pruning
matching rows. Compare entries after the kernel's safe value-set cast, skip
simplification if that cast fails, and add an execution-equivalence regression
test.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]