Skip to content

Commit 024612e

Browse files
committed
Use reserve for label_range_subset
1 parent 0b33fe1 commit 024612e

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

tiledb/sm/serialization/query.cc

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -303,27 +303,41 @@ Subarray subarray_from_capnp(
303303
}
304304
}
305305

306-
std::vector<optional<Subarray::LabelRangeSubset>> label_range_subset(
307-
dim_num, nullopt);
306+
std::vector<optional<Subarray::LabelRangeSubset>> label_range_subset;
307+
label_range_subset.reserve(dim_num);
308+
uint32_t last_dim = 0;
308309
if (reader.hasLabelRanges()) {
309310
auto label_ranges_reader = reader.getLabelRanges();
310311
uint32_t label_num = label_ranges_reader.size();
311312
for (uint32_t i = 0; i < label_num; i++) {
312313
auto label_range_reader = label_ranges_reader[i];
313314
auto dim_index = label_range_reader.getDimensionId();
314315
auto dim = array->array_schema_latest().dimension_ptr(dim_index);
316+
317+
// Fill in any missing dimensions with nullopt
318+
for (; last_dim < dim_index; last_dim++) {
319+
label_range_subset.emplace_back(std::nullopt);
320+
}
315321
auto label_name = label_range_reader.getName();
316322

317323
// Deserialize ranges for this dim label
318324
auto range_reader = label_range_reader.getRanges();
319325
auto label_ranges = range_buffers_from_capnp(range_reader);
320326

321327
// Set ranges for this dim label on the subarray
322-
label_range_subset[dim_index] = {
323-
label_name, dim->type(), label_ranges, coalesce_ranges};
328+
label_range_subset.emplace_back(
329+
std::in_place,
330+
label_name,
331+
dim->type(),
332+
label_ranges,
333+
coalesce_ranges);
324334
is_default[dim_index] = false;
325335
}
326336
}
337+
// Fill in label ranges with nullopt for any remaining dimensions
338+
for (; last_dim < dim_num; last_dim++) {
339+
label_range_subset.emplace_back(std::nullopt);
340+
}
327341

328342
std::unordered_map<std::string, std::vector<Range>> attr_range_subset;
329343
if (reader.hasAttributeRanges()) {

0 commit comments

Comments
 (0)