sgilmore10 opened a new pull request, #37233:
URL: https://github.com/apache/arrow/pull/37233
<!--
Thanks for opening a pull request!
If this is your first pull request you can find detailed information on how
to contribute here:
* [New Contributor's
Guide](https://arrow.apache.org/docs/dev/developers/guide/step_by_step/pr_lifecycle.html#reviews-and-merge-of-the-pull-request)
* [Contributing
Overview](https://arrow.apache.org/docs/dev/developers/overview.html)
If this is not a [minor
PR](https://github.com/apache/arrow/blob/main/CONTRIBUTING.md#Minor-Fixes).
Could you open an issue for this pull request on GitHub?
https://github.com/apache/arrow/issues/new/choose
Opening GitHub issues ahead of time contributes to the
[Openness](http://theapacheway.com/open/#:~:text=Openness%20allows%20new%20users%20the,must%20happen%20in%20the%20open.)
of the Apache Arrow project.
Then could you also rename the pull request title in the following format?
GH-${GITHUB_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}
or
MINOR: [${COMPONENT}] ${SUMMARY}
In the case of PARQUET issues on JIRA the title also supports:
PARQUET-${JIRA_ISSUE_ID}: [${COMPONENT}] ${SUMMARY}
-->
### Rationale for this change
Currently, the main shared library used by the MATLAB interface -
`libarrowproxy` - does not explicitly export any symbols.
This hasn't been a major issue so far based on our usage of these symbols -
except for in one case - which was being able to define a template
specialization of the static make function for `NumericArray<T>` in a C++
source file. To work around this, we decided to inline these template
specializations.
However, this isn't an ideal solution because these functions shouldn't need
to be inlined (and, in fact, this could have undesirable performance
implications).
In addition, to enable the ability to write C++ unit tests for code in the
"Proxy layer", we would need to export symbols from `libarrowproxy`.
This is the first in a series of pull requests in which we will export
symbols from `libarrowproxy` so we can write C++ unit tests via the GoogleTest
framework.
<!--
Why are you proposing this change? If this is already explained clearly in
the issue then this section is not needed.
Explaining clearly why changes are proposed helps reviewers understand your
changes and offer better suggestions for fixes.
-->
### What changes are included in this PR?
1. Added the C++ `ARROW_MATLAB_EXPORT` symbol in `visibility.h`
2. Added a new header `timestamp_array.h` which declares the template method
specialization of the static `make` function for
`NumericArray<arrow::TimestampType>`
3. Moved the definition of `NumericArray<arrow::TimestampType>::make` to
`timestamp_array.cc`
### Are these changes tested?
New tests points are not needed. These changes are covered by our existing
test suite.
### Are there any user-facing changes?
No.
### Future Directions
1. As mentioned above, this is the first in a series of pull requests. In
future PRs we will export more symbols to enable C++ unit testing.
--
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]