@@ -295,11 +295,11 @@ Subarray subarray_from_capnp(
295295 // Edge case for dimension labels where there are only label ranges set.
296296 if (ranges.empty ()) {
297297 range_subset[i] = RangeSetAndSuperset (
298- dim->type (), dim->domain (), false , coalesce_ranges);
299- }
300- // Add custom ranges, clearing any implicit ranges previously set.
301- for ( const auto & range : ranges) {
302- throw_if_not_ok (range_subset[i]. add_range_unrestricted (range) );
298+ dim->type (), dim->domain (), {dim-> domain ()} , coalesce_ranges);
299+ } else {
300+ // Add custom ranges, clearing any implicit ranges previously set.
301+ range_subset[i] = RangeSetAndSuperset (
302+ dim-> type (), dim-> domain (), ranges, coalesce_ranges );
303303 }
304304 }
305305 } else {
@@ -324,11 +324,13 @@ Subarray subarray_from_capnp(
324324
325325 // Deserialize ranges for this dim label
326326 auto range_reader = label_range_reader.getRanges ();
327- auto ranges = range_buffers_from_capnp (range_reader);
327+ auto label_ranges = range_buffers_from_capnp (range_reader);
328328
329329 // Set ranges for this dim label on the subarray
330330 label_range_subset[dim_index] = {
331- label_name, dim->type (), coalesce_ranges};
331+ label_name, dim->type (), label_ranges, coalesce_ranges};
332+ range_subset[dim_index].clear ();
333+ is_default[dim_index] = false ;
332334 }
333335 }
334336
0 commit comments