GH-43694: [C++] Add `Executor *` Option to `arrow::dataset::ScanOptions` (#43698) ### Rationale for this change (See https://github.com/apache/arrow/issues/43694) ### What changes are included in this PR? Added the option `Executor *executor` to `arrow::dataset::ScanOptions` and modified the scanner and sub-functions to either use the internally specified thread pool or the default internal pool when necessary. ### Are these changes tested? Added a Parquet scanner test that uses the new ExecContext using a separate thread pool for each fragment. ### Are there any user-facing changes? Yes, adds a new option. I'm not sure how to update the documentation though * GitHub Issue: #43694 Lead-authored-by: Scott Routledge <scott@bodo.ai> Co-authored-by: Srinivas Lade <srinulade1@gmail.com> Co-authored-by: scott-routledge2 <scott@bodo.ai> Co-authored-by: Raúl Cumplido <raulcumplido@gmail.com> Signed-off-by: Rossi Sun <zanmato1984@gmail.com>
Apache Arrow is a universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics. It contains a set of technologies that enable data systems to efficiently store, process, and move data.
Major components of the project include:
↗: Arrow-powered API, drivers, and libraries for access to databases and query engines↗↗↗↗↗↗The ↗ icon denotes that this component of the project is maintained in a separate repository.
Arrow is an Apache Software Foundation project. Learn more at arrow.apache.org.
The reference Arrow libraries contain many distinct software components:
The official Arrow libraries in this repository are in different stages of implementing the Arrow format and related features. See our current feature matrix on git main.
Please read our latest project contribution guide.
Even if you do not plan to contribute to Apache Arrow itself or Arrow integrations in other projects, we'd be happy to have you involved: