|
22 | 22 | #include <algorithm> |
23 | 23 | #include <chrono> |
24 | 24 | #include <format> |
| 25 | +#include <ranges> |
25 | 26 | #include <string> |
26 | 27 |
|
27 | 28 | #include <nlohmann/json.hpp> |
@@ -184,44 +185,37 @@ Result<TableMetadataCache::SnapshotsMapRef> TableMetadataCache::GetSnapshotsById |
184 | 185 |
|
185 | 186 | Result<TableMetadataCache::SchemasMap> TableMetadataCache::InitSchemasMap( |
186 | 187 | const TableMetadata* metadata) { |
187 | | - SchemasMap schemas_map; |
188 | | - schemas_map.reserve(metadata->schemas.size()); |
189 | | - for (const auto& schema : metadata->schemas) { |
190 | | - if (schema->schema_id()) { |
191 | | - schemas_map.emplace(schema->schema_id().value(), schema); |
192 | | - } |
193 | | - } |
194 | | - return schemas_map; |
| 188 | + return metadata->schemas | std::views::filter([](const auto& schema) { |
| 189 | + return schema->schema_id().has_value(); |
| 190 | + }) | |
| 191 | + std::views::transform([](const auto& schema) { |
| 192 | + return std::pair(schema->schema_id().value(), schema); |
| 193 | + }) | |
| 194 | + std::ranges::to<SchemasMap>(); |
195 | 195 | } |
196 | 196 |
|
197 | 197 | Result<TableMetadataCache::PartitionSpecsMap> TableMetadataCache::InitPartitionSpecsMap( |
198 | 198 | const TableMetadata* metadata) { |
199 | | - PartitionSpecsMap partition_specs_map; |
200 | | - partition_specs_map.reserve(metadata->partition_specs.size()); |
201 | | - for (const auto& spec : metadata->partition_specs) { |
202 | | - partition_specs_map.emplace(spec->spec_id(), spec); |
203 | | - } |
204 | | - return partition_specs_map; |
| 199 | + return metadata->partition_specs | std::views::transform([](const auto& spec) { |
| 200 | + return std::pair(spec->spec_id(), spec); |
| 201 | + }) | |
| 202 | + std::ranges::to<PartitionSpecsMap>(); |
205 | 203 | } |
206 | 204 |
|
207 | 205 | Result<TableMetadataCache::SortOrdersMap> TableMetadataCache::InitSortOrdersMap( |
208 | 206 | const TableMetadata* metadata) { |
209 | | - SortOrdersMap sort_orders_map; |
210 | | - sort_orders_map.reserve(metadata->sort_orders.size()); |
211 | | - for (const auto& order : metadata->sort_orders) { |
212 | | - sort_orders_map.emplace(order->order_id(), order); |
213 | | - } |
214 | | - return sort_orders_map; |
| 207 | + return metadata->sort_orders | std::views::transform([](const auto& order) { |
| 208 | + return std::pair(order->order_id(), order); |
| 209 | + }) | |
| 210 | + std::ranges::to<SortOrdersMap>(); |
215 | 211 | } |
216 | 212 |
|
217 | 213 | Result<TableMetadataCache::SnapshotsMap> TableMetadataCache::InitSnapshotMap( |
218 | 214 | const TableMetadata* metadata) { |
219 | | - SnapshotsMap snapshots_map; |
220 | | - snapshots_map.reserve(metadata->snapshots.size()); |
221 | | - for (const auto& snapshot : metadata->snapshots) { |
222 | | - snapshots_map.emplace(snapshot->snapshot_id, snapshot); |
223 | | - } |
224 | | - return snapshots_map; |
| 215 | + return metadata->snapshots | std::views::transform([](const auto& snapshot) { |
| 216 | + return std::pair(snapshot->snapshot_id, snapshot); |
| 217 | + }) | |
| 218 | + std::ranges::to<SnapshotsMap>(); |
225 | 219 | } |
226 | 220 |
|
227 | 221 | // TableMetadataUtil implementation |
|
0 commit comments