| 401 | } |
| 402 | |
| 403 | Result<std::shared_ptr<RecordBatch>> RecordBatch::RenameColumns( |
| 404 | const std::vector<std::string>& names) const { |
| 405 | int n = num_columns(); |
| 406 | |
| 407 | if (static_cast<int>(names.size()) != n) { |
| 408 | return Status::Invalid("tried to rename a record batch of ", n, " columns but only ", |
| 409 | names.size(), " names were provided"); |
| 410 | } |
| 411 | |
| 412 | ArrayVector columns(n); |
| 413 | FieldVector fields(n); |
| 414 | |
| 415 | for (int i = 0; i < n; ++i) { |
| 416 | columns[i] = column(i); |
| 417 | fields[i] = schema()->field(i)->WithName(names[i]); |
| 418 | } |
| 419 | |
| 420 | return RecordBatch::Make(::arrow::schema(std::move(fields)), num_rows(), |
| 421 | std::move(columns), GetSyncEvent()); |
| 422 | } |
| 423 | |
| 424 | Result<std::shared_ptr<RecordBatch>> RecordBatch::SelectColumns( |
| 425 | const std::vector<int>& indices) const { |