-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GH-39301: [Archery][CI][Integration] Add nanoarrow to archery + integration setup #39302
GH-39301: [Archery][CI][Integration] Add nanoarrow to archery + integration setup #39302
Conversation
Thanks for opening a pull request! If this is not a minor PR. 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 of the Apache Arrow project. Then could you also rename the pull request title in the following format?
or
In the case of PARQUET issues on JIRA the title also supports:
See also: |
|
This PR implements dictionary support in the integration test utility and fixes a few problems identified with integration testing to ensure that it actually works end-to-end (via apache/arrow#39302 ). The changes are: - Batches that contain dictionaries can now be read, written, and validated using integration testing JSON - Fixed an issue in the integration test library (anything other than the first batch previously segfaulted) - Improved const correctness of nanoarrow.hpp (because dictionaries required a `std::unordered_map<>` with a `UniqueSchema` and a few const overloads were missing) - Fixed the nullability of the top-level batch to match Arrow C++ output - Fixed the null count of exported arrays (previously they were all exported as having zero nulls) It can now be tested with `archery` (after checking out apache/arrow#39302 ): ``` export ARROW_CPP_EXE_PATH=/Users/deweydunnington/.r-arrow-dev-build/build/debug export ARROW_NANOARROW_PATH=/path/to/arrow-nanoarrow/build archery integration --with-cpp=true --with-nanoarrow=true --run-c-data ``` The current failures are limited to the remaining unimplemented types (datetime types and decimal). And for future me or anybody who has to/wants to launch a debugger with a segfaulting integration test in VSCode, it can be done with this launch.json: ``` { "type": "lldb", "request": "launch", "name": "Debug Integration Tests", "program": "${workspaceFolder}/.venv/bin/python", "args": ["-m", "archery.cli", "integration", "--with-cpp=true", "--with-nanoarrow=true", "--run-c-data"], "cwd": "${workspaceFolder}", "env": { "ARROW_CPP_EXE_PATH": "/Users/deweydunnington/.r-arrow-dev-build/build/debug", "ARROW_NANOARROW_PATH": "${workspaceFolder}/out/build/user-local" } } ```
3e059f7
to
0165301
Compare
This PR adds support for date, time, timestamp, duration, and interval to the integration tester. This also seems to pass the archery tests for C++ (with a checkout of https://github.com/apache/arrow/pull/39302 ): ```bash archery integration --with-cpp=true --with-nanoarrow=true --run-c-data ``` <details> ``` ########################################################## C Data Interface: C++ exporting, C++ importing ########################################################## ====================================================================== Testing C ArrowSchema from file 'primitive_no_batches' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'primitive' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'primitive_zerolength' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'primitive_large_offsets' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'null' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'null_trivial' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'decimal' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'decimal256' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'datetime' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'duration' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'interval' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'interval_mdn' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'map' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'map_non_canonical' -- Skipping test because producer C++ does not support C ArrowSchema ====================================================================== ====================================================================== Testing C ArrowSchema from file 'nested' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'recursive_nested' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'nested_large_offsets' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'union' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'custom_metadata' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'duplicate_fieldnames' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'dictionary' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'dictionary_unsigned' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'nested_dictionary' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'run_end_encoded' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'binary_view' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'list_view' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'extension' -- Skipping test because producer C++ does not support C ArrowSchema ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive_no_batches' ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive_zerolength' ... with record batch #0 ... with record batch #1 ... with record batch #2 ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive_large_offsets' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'null' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'null_trivial' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'decimal' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'decimal256' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'datetime' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'duration' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'interval' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'interval_mdn' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'map' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'map_non_canonical' ... with record batch #0 ====================================================================== ====================================================================== Testing C ArrowArray from file 'nested' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'recursive_nested' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'nested_large_offsets' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'union' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'custom_metadata' ... with record batch #0 ====================================================================== ====================================================================== Testing C ArrowArray from file 'duplicate_fieldnames' ... with record batch #0 ====================================================================== ====================================================================== Testing C ArrowArray from file 'dictionary' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'dictionary_unsigned' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'nested_dictionary' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'run_end_encoded' ... with record batch #0 ... with record batch #1 ... with record batch #2 ====================================================================== ====================================================================== Testing C ArrowArray from file 'binary_view' ... with record batch #0 ... with record batch #1 ... with record batch #2 ====================================================================== ====================================================================== Testing C ArrowArray from file 'list_view' ... with record batch #0 ... with record batch #1 ... with record batch #2 ====================================================================== ====================================================================== Testing C ArrowArray from file 'extension' -- Skipping test because producer C++ does not support C ArrowArray ====================================================================== ########################################################## C Data Interface: C++ exporting, nanoarrow importing ########################################################## ====================================================================== Testing C ArrowSchema from file 'primitive_no_batches' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'primitive' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'primitive_zerolength' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'primitive_large_offsets' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'null' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'null_trivial' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'decimal' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'decimal256' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'datetime' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'duration' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'interval' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'interval_mdn' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'map' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'map_non_canonical' -- Skipping test because producer C++ does not support C ArrowSchema ====================================================================== ====================================================================== Testing C ArrowSchema from file 'nested' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'recursive_nested' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'nested_large_offsets' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'union' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'custom_metadata' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'duplicate_fieldnames' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'dictionary' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'dictionary_unsigned' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'nested_dictionary' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'run_end_encoded' Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 473, in _run_c_schema_test_case do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 456, in do_run importer.import_schema_and_compare_to_json(json_path, c_schema_ptr) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 138, in import_schema_and_compare_to_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: Unsupported Type name: 'runendencoded' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'binary_view' Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 473, in _run_c_schema_test_case do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 456, in do_run importer.import_schema_and_compare_to_json(json_path, c_schema_ptr) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 138, in import_schema_and_compare_to_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: Unsupported Type name: 'binaryview' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'list_view' Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 473, in _run_c_schema_test_case do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 456, in do_run importer.import_schema_and_compare_to_json(json_path, c_schema_ptr) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 138, in import_schema_and_compare_to_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: Unsupported Type name: 'listview' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'extension' -- Skipping test because producer C++ does not support C ArrowSchema ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive_no_batches' ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive_zerolength' ... with record batch #0 ... with record batch #1 ... with record batch #2 ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive_large_offsets' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'null' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'null_trivial' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'decimal' ... with record batch #0 Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 523, in _run_c_array_test_cases do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 503, in do_run importer.import_batch_and_compare_to_json(json_path, File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 144, in import_batch_and_compare_to_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: -> Column 'f0' storage type decimal128 DATA buffer not supported ====================================================================== ====================================================================== Testing C ArrowArray from file 'decimal256' ... with record batch #0 Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 523, in _run_c_array_test_cases do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 503, in do_run importer.import_batch_and_compare_to_json(json_path, File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 144, in import_batch_and_compare_to_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: -> Column 'f0' storage type decimal256 DATA buffer not supported ====================================================================== ====================================================================== Testing C ArrowArray from file 'datetime' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'duration' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'interval' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'interval_mdn' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'map' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'map_non_canonical' ... with record batch #0 ====================================================================== ====================================================================== Testing C ArrowArray from file 'nested' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'recursive_nested' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'nested_large_offsets' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'union' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'custom_metadata' ... with record batch #0 ====================================================================== ====================================================================== Testing C ArrowArray from file 'duplicate_fieldnames' ... with record batch #0 ====================================================================== ====================================================================== Testing C ArrowArray from file 'dictionary' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'dictionary_unsigned' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'nested_dictionary' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'run_end_encoded' ... with record batch #0 Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 523, in _run_c_array_test_cases do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 503, in do_run importer.import_batch_and_compare_to_json(json_path, File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 144, in import_batch_and_compare_to_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: Unsupported Type name: 'runendencoded' ====================================================================== ====================================================================== Testing C ArrowArray from file 'binary_view' ... with record batch #0 Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 523, in _run_c_array_test_cases do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 503, in do_run importer.import_batch_and_compare_to_json(json_path, File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 144, in import_batch_and_compare_to_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: Unsupported Type name: 'binaryview' ====================================================================== ====================================================================== Testing C ArrowArray from file 'list_view' ... with record batch #0 Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 523, in _run_c_array_test_cases do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 503, in do_run importer.import_batch_and_compare_to_json(json_path, File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 144, in import_batch_and_compare_to_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: Unsupported Type name: 'listview' ====================================================================== ====================================================================== Testing C ArrowArray from file 'extension' -- Skipping test because producer C++ does not support C ArrowArray ====================================================================== ########################################################## C Data Interface: nanoarrow exporting, C++ importing ########################################################## ====================================================================== Testing C ArrowSchema from file 'primitive_no_batches' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'primitive' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'primitive_zerolength' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'primitive_large_offsets' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'null' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'null_trivial' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'decimal' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'decimal256' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'datetime' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'duration' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'interval' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'interval_mdn' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'map' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'map_non_canonical' -- Skipping test because consumer C++ does not support C ArrowSchema ====================================================================== ====================================================================== Testing C ArrowSchema from file 'nested' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'recursive_nested' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'nested_large_offsets' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'union' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'custom_metadata' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'duplicate_fieldnames' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'dictionary' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'dictionary_unsigned' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'nested_dictionary' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'run_end_encoded' Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 473, in _run_c_schema_test_case do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 455, in do_run exporter.export_schema_from_json(json_path, c_schema_ptr) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 117, in export_schema_from_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: Unsupported Type name: 'runendencoded' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'binary_view' Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 473, in _run_c_schema_test_case do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 455, in do_run exporter.export_schema_from_json(json_path, c_schema_ptr) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 117, in export_schema_from_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: Unsupported Type name: 'binaryview' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'list_view' Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 473, in _run_c_schema_test_case do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 455, in do_run exporter.export_schema_from_json(json_path, c_schema_ptr) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 117, in export_schema_from_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: Unsupported Type name: 'listview' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'extension' -- Skipping test because consumer C++ does not support C ArrowSchema ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive_no_batches' ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive_zerolength' ... with record batch #0 ... with record batch #1 ... with record batch #2 ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive_large_offsets' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'null' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'null_trivial' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'decimal' ... with record batch #0 Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 523, in _run_c_array_test_cases do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 500, in do_run exporter.export_batch_from_json(json_path, File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 123, in export_batch_from_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: -> Column 'f0' storage type decimal128 DATA buffer not supported ====================================================================== ====================================================================== Testing C ArrowArray from file 'decimal256' ... with record batch #0 Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 523, in _run_c_array_test_cases do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 500, in do_run exporter.export_batch_from_json(json_path, File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 123, in export_batch_from_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: -> Column 'f0' storage type decimal256 DATA buffer not supported ====================================================================== ====================================================================== Testing C ArrowArray from file 'datetime' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'duration' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'interval' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'interval_mdn' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'map' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'map_non_canonical' ... with record batch #0 ====================================================================== ====================================================================== Testing C ArrowArray from file 'nested' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'recursive_nested' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'nested_large_offsets' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'union' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'custom_metadata' ... with record batch #0 ====================================================================== ====================================================================== Testing C ArrowArray from file 'duplicate_fieldnames' ... with record batch #0 ====================================================================== ====================================================================== Testing C ArrowArray from file 'dictionary' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'dictionary_unsigned' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'nested_dictionary' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'run_end_encoded' ... with record batch #0 Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 523, in _run_c_array_test_cases do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 500, in do_run exporter.export_batch_from_json(json_path, File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 123, in export_batch_from_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: Unsupported Type name: 'runendencoded' ====================================================================== ====================================================================== Testing C ArrowArray from file 'binary_view' ... with record batch #0 Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 523, in _run_c_array_test_cases do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 500, in do_run exporter.export_batch_from_json(json_path, File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 123, in export_batch_from_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: Unsupported Type name: 'binaryview' ====================================================================== ====================================================================== Testing C ArrowArray from file 'list_view' ... with record batch #0 Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 523, in _run_c_array_test_cases do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 500, in do_run exporter.export_batch_from_json(json_path, File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 123, in export_batch_from_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: Unsupported Type name: 'listview' ====================================================================== ====================================================================== Testing C ArrowArray from file 'extension' -- Skipping test because consumer C++ does not support C ArrowArray ====================================================================== ########################################################## C Data Interface: nanoarrow exporting, nanoarrow importing ########################################################## ====================================================================== Testing C ArrowSchema from file 'primitive_no_batches' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'primitive' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'primitive_zerolength' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'primitive_large_offsets' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'null' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'null_trivial' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'decimal' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'decimal256' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'datetime' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'duration' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'interval' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'interval_mdn' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'map' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'map_non_canonical' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'nested' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'recursive_nested' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'nested_large_offsets' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'union' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'custom_metadata' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'duplicate_fieldnames' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'dictionary' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'dictionary_unsigned' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'nested_dictionary' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'run_end_encoded' Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 473, in _run_c_schema_test_case do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 455, in do_run exporter.export_schema_from_json(json_path, c_schema_ptr) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 117, in export_schema_from_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: Unsupported Type name: 'runendencoded' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'binary_view' Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 473, in _run_c_schema_test_case do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 455, in do_run exporter.export_schema_from_json(json_path, c_schema_ptr) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 117, in export_schema_from_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: Unsupported Type name: 'binaryview' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'list_view' Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 473, in _run_c_schema_test_case do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 455, in do_run exporter.export_schema_from_json(json_path, c_schema_ptr) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 117, in export_schema_from_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: Unsupported Type name: 'listview' ====================================================================== ====================================================================== Testing C ArrowSchema from file 'extension' ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive_no_batches' ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive_zerolength' ... with record batch #0 ... with record batch #1 ... with record batch #2 ====================================================================== ====================================================================== Testing C ArrowArray from file 'primitive_large_offsets' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'null' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'null_trivial' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'decimal' ... with record batch #0 Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 523, in _run_c_array_test_cases do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 500, in do_run exporter.export_batch_from_json(json_path, File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 123, in export_batch_from_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: -> Column 'f0' storage type decimal128 DATA buffer not supported ====================================================================== ====================================================================== Testing C ArrowArray from file 'decimal256' ... with record batch #0 Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 523, in _run_c_array_test_cases do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 500, in do_run exporter.export_batch_from_json(json_path, File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 123, in export_batch_from_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data Integration call failed: -> Column 'f0' storage type decimal256 DATA buffer not supported ====================================================================== ====================================================================== Testing C ArrowArray from file 'datetime' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'duration' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'interval' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'interval_mdn' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'map' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'map_non_canonical' ... with record batch #0 ====================================================================== ====================================================================== Testing C ArrowArray from file 'nested' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'recursive_nested' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'nested_large_offsets' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'union' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'custom_metadata' ... with record batch #0 ====================================================================== ====================================================================== Testing C ArrowArray from file 'duplicate_fieldnames' ... with record batch #0 ====================================================================== ====================================================================== Testing C ArrowArray from file 'dictionary' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'dictionary_unsigned' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'nested_dictionary' ... with record batch #0 ... with record batch #1 ====================================================================== ====================================================================== Testing C ArrowArray from file 'run_end_encoded' ... with record batch #0 Traceback (most recent call last): File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 523, in _run_c_array_test_cases do_run() File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/runner.py", line 500, in do_run exporter.export_batch_from_json(json_path, File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 123, in export_batch_from_json self._check_nanoarrow_error(na_error) File "/Users/dewey/Desktop/rscratch/arrow/dev/archery/archery/integration/tester_nanoarrow.py", line 109, in _check_nanoarrow_error raise RuntimeError(f"nanoarrow C Data Integration call failed: {error}") RuntimeError: nanoarrow C Data…
58f74a4
to
fa0d189
Compare
A few outstanding issues: I'm not sure how to skip based on type in Archery. nanoarrow doesn't support the new types yet, so it doesn't add them in integration testing. There must be an example of this but I can't seem to find it!
C# appears to export record batches as nullable structs, whereas nanoarrow expects them to be non-nullable. In nanoarrow I should probably just ignore the difference for a top-level "batch".
Java's metadata probably goes through a hash map or something because it looks like the order is not always maintained. We can relax the comparison to consider all keys/values of the metadata as a whole:
It looks like Go exports zero-length metadata (i.e., b"\x00\x00\x00\x00") instead of NULL metadata. We can relax that check in the comparison.
It looks like C# has some issues with the arrays produced by nanoarrow (or at least by the JSON reader):
...and C# reports a memory leak. I would have assumed that a memory leak would have been consistent between languages so I'm puzzled by this one.
|
fa0d189
to
f66a24f
Compare
c8c457b
to
02a98ed
Compare
2daebbc
to
5c3e0ad
Compare
Ok, we're now down to:
(i.e., only very specific files, but the same files each time, are reporting leaks when C# is responsible for releasing) |
c98efcd
to
a0e70ec
Compare
These changes are the changes required such that apache/arrow#39302 results in passing integration tests for nanoarrow. The changes are mostly related to comparison: - We needed an option to allow metadata to be compared on a key/value basis without considering order (for Java, which seems to reorder metadata on read) - We needed the ability to treat NULL metadata and zero-size metadata as equivalent (for Go, which always exports zero-length metadata) - We needed an option to ignore flags for top-level batches (for C#, which exports nullable structs) - We needed to ensure that the last few bits of the validity buffer were zeroed (for C#, although this is now fixed in C# on Arrow main) - We needed to ensure that no buffers were NULL (For C#, which leaks the top-level array if it encounters one, at least in the integration tests. This should really be fixed in C#).
b169bed
to
a8ee10a
Compare
4d60419
to
b9adfec
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but I'm not to be trusted reviewing shell script and Python.
|
||
_NANOARROW_PATH = os.environ.get( | ||
"ARROW_NANOARROW_PATH", | ||
os.path.join(ARROW_ROOT_DEFAULT, "nanoarrow/cdata"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unless we clone nanoarrow inside the arrow
repo ARROW_ROOT_DEFAULT
would never be the correct path here as it will include the arrow
folder.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you wanted to do this interactively that is basically what you would have to do (I've tried this and it does work)...this is the approach used by the Rust tester that I copied here. In docker-compose.yml this is overridden such that the build happens elsewhere.
After merging your PR, Conbench analyzed the 0 benchmarking runs that have been run so far on merge-commit 899422e. None of the specified runs were found on the Conbench server. The full Conbench report has more details. |
Thanks for this @paleolimbot ! |
… integration setup (apache#39302) ### Rationale for this change The ability to add integration testing was added in nanoarrow however, the infrastructure for running these tests currently lives in the arrow monorepo. ### What changes are included in this PR? - Added the relevant code to Archery such that these tests can be run - Added the relevant scripts/environment variables to CI such that these tests run in the integration CI job ### Are these changes tested? Yes, via the "Integration" CI job. ### Are there any user-facing changes? No. This PR still needs apache#41264 for the integration tests to pass. * Closes: apache#39301 * GitHub Issue: apache#39301 Lead-authored-by: Dewey Dunnington <[email protected]> Co-authored-by: Dewey Dunnington <[email protected]> Signed-off-by: Dewey Dunnington <[email protected]>
… integration setup (apache#39302) ### Rationale for this change The ability to add integration testing was added in nanoarrow however, the infrastructure for running these tests currently lives in the arrow monorepo. ### What changes are included in this PR? - Added the relevant code to Archery such that these tests can be run - Added the relevant scripts/environment variables to CI such that these tests run in the integration CI job ### Are these changes tested? Yes, via the "Integration" CI job. ### Are there any user-facing changes? No. This PR still needs apache#41264 for the integration tests to pass. * Closes: apache#39301 * GitHub Issue: apache#39301 Lead-authored-by: Dewey Dunnington <[email protected]> Co-authored-by: Dewey Dunnington <[email protected]> Signed-off-by: Dewey Dunnington <[email protected]>
… integration setup (apache#39302) ### Rationale for this change The ability to add integration testing was added in nanoarrow however, the infrastructure for running these tests currently lives in the arrow monorepo. ### What changes are included in this PR? - Added the relevant code to Archery such that these tests can be run - Added the relevant scripts/environment variables to CI such that these tests run in the integration CI job ### Are these changes tested? Yes, via the "Integration" CI job. ### Are there any user-facing changes? No. This PR still needs apache#41264 for the integration tests to pass. * Closes: apache#39301 * GitHub Issue: apache#39301 Lead-authored-by: Dewey Dunnington <[email protected]> Co-authored-by: Dewey Dunnington <[email protected]> Signed-off-by: Dewey Dunnington <[email protected]>
Rationale for this change
The ability to add integration testing was added in nanoarrow however, the infrastructure for running these tests currently lives in the arrow monorepo.
What changes are included in this PR?
Are these changes tested?
Yes, via the "Integration" CI job.
Are there any user-facing changes?
No.
This PR still needs #41264 for the integration tests to pass.