| 57 | auto g_group_id_type = std::make_shared<GroupIdType>(); |
| 58 | |
| 59 | Status CheckForGetSegments(const ExecSpan& batch, |
| 60 | const std::vector<TypeHolder>& key_types) { |
| 61 | if (batch.values.size() != key_types.size()) { |
| 62 | return Status::Invalid("expected batch size ", key_types.size(), " but got ", |
| 63 | batch.values.size()); |
| 64 | } |
| 65 | for (size_t i = 0; i < key_types.size(); i++) { |
| 66 | const auto& value = batch.values[i]; |
| 67 | const auto& key_type = key_types[i]; |
| 68 | if (*value.type() != *key_type.type) { |
| 69 | return Status::Invalid("expected batch value ", i, " of type ", *key_type.type, |
| 70 | " but got ", *value.type()); |
| 71 | } |
| 72 | } |
| 73 | return Status::OK(); |
| 74 | } |
| 75 | |
| 76 | struct BaseRowSegmenter : public RowSegmenter { |
| 77 | explicit BaseRowSegmenter(const std::vector<TypeHolder>& key_types) |
no test coverage detected