wesm opened a new pull request, #13753: URL: https://github.com/apache/arrow/pull/13753
This is something that I've hacked on a little bit while on airplanes and in idle moments for my own curiosity and just cleaned up to turn into a PR. This PR changes `arrow::compute::InputType` to only store `const DataType*` instead of `shared_ptr<DataType>`, which means that we don't have to copy the smart pointers for every kernel and function that's registered. Amazingly, this trims the size of libarrow.so by about 1% (~300KB) because of not having a bunch of inlined shared_ptr code. This change does have consequences -- developers need to be careful about creating function signatures with data types that may have temporary storage duration (all of the APIs like `arrow::int64()` return static instances, and I changed `arrow::duration` and some other type factories to return static instances, too). But I think the benefits outweigh the costs. -- 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