|
iceberg-cpp
|
Cached state for ProjectBatch over one input/output schema pair. More...
#include <arrow_c_data_util_internal.h>
Public Types | |
| using | ProjectBatchState = std::shared_ptr< void > |
| using | ProjectBatchFunction = auto(*)(ArrowArray *input_batch, std::span< const int32_t > row_indices, ProjectionContext &projection) -> Result< ArrowArray > |
Public Member Functions | |
| ProjectionContext (ProjectionContext &&) noexcept | |
| ProjectionContext & | operator= (ProjectionContext &&) noexcept |
| ProjectionContext (const ProjectionContext &)=delete | |
| ProjectionContext & | operator= (const ProjectionContext &)=delete |
| const Schema & | input_schema () const |
| const Schema & | output_schema () const |
| const ArrowSchema & | input_arrow_schema () const |
| const ArrowSchema & | output_arrow_schema () const |
| std::span< const int32_t > | selected_field_indices () const |
| ProjectBatchFunction | project_batch_function () const |
| ProjectBatchState & | project_batch_state () |
Static Public Member Functions | |
| static void | RegisterProjectBatchFunction (ProjectBatchFunction project_batch_function) |
| Register a custom implementation for ProjectBatch. | |
| static bool | HasProjectBatchFunction () |
| Returns true when a custom implementation has been registered. | |
| static auto | ResolveProjectBatchFunction () -> ProjectBatchFunction |
| Resolve the registered ProjectBatch implementation. | |
| static Result< ProjectionContext > | Make (const Schema &input_schema, const Schema &output_schema, ProjectBatchFunction project_batch_function) |
| Build reusable projection state for a validated schema pair. | |
Cached state for ProjectBatch over one input/output schema pair.
Exported because this internal utility is shared across library translation units.
|
static |
Build reusable projection state for a validated schema pair.
| input_schema | Schema that describes every input batch. |
| output_schema | Final schema and column order requested by the caller. |
| project_batch_function | Optional implementation returned by ProjectionContext::ResolveProjectBatchFunction, or nullptr to use the nanoarrow path. |
|
static |
Register a custom implementation for ProjectBatch.
Registration is process-wide. If multiple implementations are registered, the last non-null implementation wins.