| 1381 | } |
| 1382 | |
| 1383 | Status ProcessREE() { |
| 1384 | RETURN_NOT_OK(f_parser_.CheckAtEnd()); |
| 1385 | RETURN_NOT_OK(CheckNumChildren(2)); |
| 1386 | ARROW_ASSIGN_OR_RAISE(auto run_ends_field, MakeChildField(0)); |
| 1387 | ARROW_ASSIGN_OR_RAISE(auto values_field, MakeChildField(1)); |
| 1388 | if (!is_run_end_type(run_ends_field->type()->id())) { |
| 1389 | return Status::Invalid("Expected a valid run-end integer type, but struct has ", |
| 1390 | run_ends_field->type()->ToString()); |
| 1391 | } |
| 1392 | if (values_field->type()->id() == Type::RUN_END_ENCODED) { |
| 1393 | return Status::Invalid("ArrowArray struct contains a nested run-end encoded array"); |
| 1394 | } |
| 1395 | type_ = run_end_encoded(run_ends_field->type(), values_field->type()); |
| 1396 | return Status::OK(); |
| 1397 | } |
| 1398 | |
| 1399 | Result<std::shared_ptr<Field>> MakeChildField(int64_t child_id) { |
| 1400 | const auto& child = child_importers_[child_id]; |
nothing calls this directly
no test coverage detected