| 1851 | } |
| 1852 | |
| 1853 | Result<std::shared_ptr<Schema>> FieldPath::GetAll(const Schema& schm, |
| 1854 | const std::vector<FieldPath>& paths) { |
| 1855 | FieldVector fields; |
| 1856 | fields.reserve(paths.size()); |
| 1857 | for (const auto& path : paths) { |
| 1858 | ARROW_ASSIGN_OR_RAISE(std::shared_ptr<Field> field, path.Get(schm)); |
| 1859 | fields.push_back(std::move(field)); |
| 1860 | } |
| 1861 | return schema(std::move(fields)); |
| 1862 | } |
| 1863 | |
| 1864 | Result<std::shared_ptr<Array>> FieldPath::Get(const RecordBatch& batch) const { |
| 1865 | // Deliberately calling `column_data` here because `RecordBatch::columns` is nontrivial |