MCPcopy Create free account
hub / github.com/TileDB-Inc/TileDB / split

Method split

tiledb/sm/subarray/subarray.cc:1448–1475  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1446}
1447
1448void Subarray::split(
1449 unsigned splitting_dim,
1450 const ByteVecValue& splitting_value,
1451 Subarray* r1,
1452 Subarray* r2) const {
1453 iassert(r1 != nullptr);
1454 iassert(r2 != nullptr);
1455 *r1 = Subarray(array_, layout_, stats_->parent(), logger_, coalesce_ranges_);
1456 *r2 = Subarray(array_, layout_, stats_->parent(), logger_, coalesce_ranges_);
1457
1458 auto dim_num = array_->array_schema_latest().dim_num();
1459
1460 Range sr1, sr2;
1461 for (unsigned d = 0; d < dim_num; ++d) {
1462 const auto& r = range_subset_[d][0];
1463 if (d == splitting_dim) {
1464 auto dim{array_->array_schema_latest().dimension_ptr(d)};
1465 dim->split_range(r, splitting_value, &sr1, &sr2);
1466 r1->add_range_unsafe(d, sr1);
1467 r2->add_range_unsafe(d, sr2);
1468 } else {
1469 if (!range_subset_[d].is_implicitly_initialized()) {
1470 r1->add_range_unsafe(d, r);
1471 r2->add_range_unsafe(d, r);
1472 }
1473 }
1474 }
1475}
1476
1477void Subarray::split(
1478 uint64_t splitting_range,

Callers 6

split_top_multi_rangeMethod · 0.80
run_benchmarksFunction · 0.80
parse_pr_bodyFunction · 0.80
accept_pathMethod · 0.80
update_versionFunction · 0.80

Calls 9

get_range_numMethod · 0.95
parentMethod · 0.80
array_schema_latestMethod · 0.80
SubarrayClass · 0.70
dim_numMethod · 0.45
dimension_ptrMethod · 0.45
split_rangeMethod · 0.45
add_range_unsafeMethod · 0.45

Tested by

no test coverage detected