WillAyd commented on code in PR #45272:
URL: https://github.com/apache/arrow/pull/45272#discussion_r2222787497


##########
cpp/src/arrow/compute/kernels/scalar_compare.cc:
##########
@@ -54,6 +55,39 @@ struct NotEqual {
   }
 };
 
+struct ListEqual {
+  template <typename T, typename Arg0, typename Arg1>
+  static T Call(KernelContext*, const Arg0& left, const Arg1& right, Status*) {
+    static_assert(std::is_same<T, bool>::value && std::is_same<Arg0, 
Arg1>::value, "");
+
+    if (left.length != right.length) {
+      return false;
+    } else {
+      RangeDataEqualsImpl range_comparer{
+          EqualOptions::Defaults(), false, left, right, 0, 0, 1,

Review Comment:
   I'm starting to question if the ArrayIterator approach will really work 
here. The issue with this code in its current state is that it holds an 
invariant the its ArraySpan argument being provided is sliced so that the 
offset is 0; I think that might be hard to read and worry about how 
generalizable it will be.
   
   There's also an issue with the child array properly signaling its validity 
bitmap to `RangeDataEqualsImpl::Compare`, which is configured to read the 
bitmap of the parent. 
   
   Researching a bit more how the other nested types are handled...stay tuned
   



-- 
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: github-unsubscr...@arrow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to