raulcd commented on code in PR #46161:
URL: https://github.com/apache/arrow/pull/46161#discussion_r2055696256


##########
cpp/src/arrow/compute/kernels/test_util.h:
##########
@@ -0,0 +1,30 @@
+// Licensed to the Apache Software Foundation (ASF) under one

Review Comment:
   I've initially moved it to `arrow/compute/kernels/test_util_internal.h`, in 
that case we require to also add to `libarrow_testing.so` -> 
`arrow/compute/test_util_internal.cc` otherwise we get some missing symbols 
(`undefined reference to arrow::compute::ValidateOutput(arrow::Datum const&)`):
   ```
     list(APPEND ARROW_TESTING_SRCS compute/kernels/test_util_internal.cc
          compute/test_util_internal.cc)
   ```
   I don't think it's great that we are exporting symbols from 
`test_util_internal.cc` and that we are adding some of the internals to 
`libarrow_testing.so`. See the initial commit: 
https://github.com/apache/arrow/pull/46161/commits/6ee47f2c648566cdb6cc1c3527eafc036448c201
   
   The above fails on Windows with `'arrow::compute::RunEndEncodeTableColumns': 
inconsistent dll linkage`. I could continue with that route but I would 
probably have to remove our current `arrow_compute_kernels_testing` target to 
just put the internal utilities on `libarrow_testing.so`.
   
   As I think this goes against a better hygiene of `libarrow_testing.so`, at 
this point I have decided to move the utility function to 
`arrow/acero/test_util_internal.h` and not require `ARROW_TESTING_EXPORT` at 
all. I think the utility function is quite niche and can live there and acero 
will always require compute.
   
   



-- 
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