| 148 | } |
| 149 | |
| 150 | Result<ExecBatch> ExecBatch::SelectValues(const std::vector<int>& ids) const { |
| 151 | std::vector<Datum> selected_values; |
| 152 | selected_values.reserve(ids.size()); |
| 153 | for (int id : ids) { |
| 154 | if (id < 0 || static_cast<size_t>(id) >= values.size()) { |
| 155 | return Status::Invalid("ExecBatch invalid value selection: ", id); |
| 156 | } |
| 157 | selected_values.push_back(values[id]); |
| 158 | } |
| 159 | return ExecBatch(std::move(selected_values), length); |
| 160 | } |
| 161 | |
| 162 | namespace { |
| 163 |