amol- commented on a change in pull request #10199:
URL: https://github.com/apache/arrow/pull/10199#discussion_r626464715
##########
File path: cpp/src/arrow/python/numpy_to_arrow.cc
##########
@@ -594,7 +594,13 @@ Status NumPyConverter::Visit(const FixedSizeBinaryType&
type) {
if (mask_ != nullptr) {
Ndarray1DIndexer<uint8_t> mask_values(mask_);
- RETURN_NOT_OK(builder.AppendValues(data, length_, mask_values.data()));
+ std::unique_ptr<uint8_t[]> inverted_mask(new uint8_t[length_]);
+ for (int64_t i = 0; i < length_; ++i) {
+ inverted_mask[i] = !mask_values[i];
+ }
Review comment:
Ok, the implementation provided by
https://github.com/apache/arrow/pull/10199/commits/b3e0a37049dffdcac63b5ce446907be60523e651
should do the trick.
I also verified that the `PrepareInputData` does a zero copy and
`ArrayData::Make` does move the buffer.
Which is good because it should be far faster than previous solution, but
raises questions about the memory ownership.
--
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.
For queries about this service, please contact Infrastructure at:
[email protected]