| 532 | } |
| 533 | |
| 534 | Status HashJoinDictBuildMulti::EncodeBatch( |
| 535 | size_t thread_index, const SchemaProjectionMaps<HashJoinProjection>& proj_map, |
| 536 | const ExecBatch& batch, RowEncoder* encoder, ExecContext* ctx) const { |
| 537 | ExecBatch projected({}, batch.length); |
| 538 | int num_cols = proj_map.num_cols(HashJoinProjection::KEY); |
| 539 | projected.values.resize(num_cols); |
| 540 | |
| 541 | auto to_input = proj_map.map(HashJoinProjection::KEY, HashJoinProjection::INPUT); |
| 542 | for (int icol = 0; icol < num_cols; ++icol) { |
| 543 | projected.values[icol] = batch.values[to_input.get(icol)]; |
| 544 | |
| 545 | if (needs_remap_[icol]) { |
| 546 | ARROW_ASSIGN_OR_RAISE( |
| 547 | projected.values[icol], |
| 548 | remap_imp_[icol].RemapInput(ctx, projected.values[icol], batch.length, |
| 549 | proj_map.data_type(HashJoinProjection::KEY, icol))); |
| 550 | } |
| 551 | } |
| 552 | return encoder->EncodeAndAppend(ExecSpan(projected)); |
| 553 | } |
| 554 | |
| 555 | Status HashJoinDictBuildMulti::PostDecode( |
| 556 | const SchemaProjectionMaps<HashJoinProjection>& proj_map, |
nothing calls this directly
no test coverage detected