Skip to content

Commit 0530fb2

Browse files
committed
Remove status from some trivial functions in array and group directory.
1 parent f4b02ca commit 0530fb2

File tree

10 files changed

+86
-156
lines changed

10 files changed

+86
-156
lines changed

test/src/unit-cppapi-deletes.cc

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -437,15 +437,14 @@ void DeletesFx::check_delete_conditions(
437437
auto array_ptr = array->ptr()->array_;
438438

439439
// Load delete conditions.
440-
auto&& [st, delete_conditions, update_values] =
440+
auto&& [delete_conditions, update_values] =
441441
array_ptr->opened_array()->load_delete_and_update_conditions();
442-
REQUIRE(st.ok());
443-
REQUIRE(delete_conditions->size() == qcs.size());
442+
REQUIRE(delete_conditions.size() == qcs.size());
444443

445444
for (uint64_t i = 0; i < qcs.size(); i++) {
446445
// Compare to negated condition.
447446
auto cmp = qcs[i].ptr()->query_condition_->negated_condition();
448-
CHECK(tiledb::test::ast_equal(delete_conditions->at(i).ast(), cmp.ast()));
447+
CHECK(tiledb::test::ast_equal(delete_conditions.at(i).ast(), cmp.ast()));
449448
}
450449

451450
array->close();

test/src/unit-cppapi-update-queries.cc

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -208,17 +208,16 @@ void UpdatesFx::check_update_conditions(
208208
auto array_ptr = array->ptr()->array_;
209209

210210
// Load delete conditions.
211-
auto&& [st, conditions, update_values] =
211+
auto&& [conditions, update_values] =
212212
array_ptr->opened_array()->load_delete_and_update_conditions();
213-
REQUIRE(st.ok());
214-
REQUIRE(conditions->size() == qcs.size());
213+
REQUIRE(conditions.size() == qcs.size());
215214

216215
for (uint64_t i = 0; i < qcs.size(); i++) {
217216
// Compare to negated condition.
218217
auto cmp = qcs[i].ptr()->query_condition_->negated_condition();
219-
CHECK(tiledb::test::ast_equal(conditions->at(i).ast(), cmp.ast()));
218+
CHECK(tiledb::test::ast_equal(conditions.at(i).ast(), cmp.ast()));
220219

221-
auto& loaded_update_values = update_values->at(i);
220+
auto& loaded_update_values = update_values.at(i);
222221
for (uint64_t j = 0; j < uvs[i].size(); j++) {
223222
CHECK(uvs[i][j].field_name() == loaded_update_values[j].field_name());
224223
}

tiledb/sm/array/array.cc

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,7 @@ Array::Array(
110110
/* API */
111111
/* ********************************* */
112112

113-
tuple<
114-
Status,
115-
optional<std::vector<QueryCondition>>,
116-
optional<std::vector<std::vector<UpdateValue>>>>
113+
tuple<std::vector<QueryCondition>, std::vector<std::vector<UpdateValue>>>
117114
OpenedArray::load_delete_and_update_conditions() {
118115
auto& locations = array_directory().delete_and_update_tiles_location();
119116
auto conditions = std::vector<QueryCondition>(locations.size());
@@ -151,7 +148,7 @@ OpenedArray::load_delete_and_update_conditions() {
151148

152149
throw_if_not_ok(conditions[i].check(array_schema_latest()));
153150
});
154-
return {Status::Ok(), conditions, update_values};
151+
return {conditions, update_values};
155152
}
156153

157154
Status Array::evolve_array_schema(

tiledb/sm/array/array.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -218,12 +218,9 @@ class OpenedArray {
218218
/**
219219
* Loads the delete and update conditions from storage.
220220
*
221-
* @return Status, vector of the conditions, vector of the update values.
221+
* @return vector of the conditions, vector of the update values.
222222
*/
223-
tuple<
224-
Status,
225-
optional<std::vector<QueryCondition>>,
226-
optional<std::vector<std::vector<UpdateValue>>>>
223+
tuple<std::vector<QueryCondition>, std::vector<std::vector<UpdateValue>>>
227224
load_delete_and_update_conditions();
228225

229226
private:

tiledb/sm/array/array_directory.cc

Lines changed: 27 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -410,22 +410,18 @@ Status ArrayDirectory::load() {
410410
consolidated_commit_uris_set_);
411411
} else {
412412
// Process root dir.
413-
auto&& [st2, fragment_uris_v1_v11] =
414-
load_root_dir_uris_v1_v11(root_dir_uris);
415-
RETURN_NOT_OK(st2);
413+
auto fragment_uris_v1_v11 = load_root_dir_uris_v1_v11(root_dir_uris);
416414

417415
// Process commit dir.
418-
auto&& [st3, fragment_uris_v12_or_higher] =
419-
load_commits_dir_uris_v12_or_higher(
420-
commits_dir_uris, consolidated_commit_uris.value());
421-
RETURN_NOT_OK(st3);
416+
auto fragment_uris_v12_or_higher = load_commits_dir_uris_v12_or_higher(
417+
commits_dir_uris, consolidated_commit_uris.value());
422418

423419
// Append the two fragment URI vectors together
424-
unfiltered_fragment_uris_ = std::move(fragment_uris_v1_v11.value());
420+
unfiltered_fragment_uris_ = std::move(fragment_uris_v1_v11);
425421
unfiltered_fragment_uris_.insert(
426422
unfiltered_fragment_uris_.end(),
427-
fragment_uris_v12_or_higher.value().begin(),
428-
fragment_uris_v12_or_higher.value().end());
423+
fragment_uris_v12_or_higher.begin(),
424+
fragment_uris_v12_or_higher.end());
429425

430426
// Merge the fragment meta URIs.
431427
std::copy(
@@ -451,18 +447,15 @@ Status ArrayDirectory::load() {
451447
const ArrayDirectory::FilteredFragmentUris
452448
ArrayDirectory::filtered_fragment_uris(const bool full_overlap_only) const {
453449
// Compute fragment URIs and the vacuum file URIs to vacuum
454-
auto&& [st, fragment_uris_to_vacuum, fragment_vac_uris_to_vacuum] =
450+
auto&& [fragment_uris_to_vacuum, fragment_vac_uris_to_vacuum] =
455451
compute_uris_to_vacuum(full_overlap_only, unfiltered_fragment_uris_);
456-
if (!st.ok()) {
457-
throw std::logic_error(st.message());
458-
}
459452

460453
// Compute commit URIs to vacuum, which only need to be done for fragment
461454
// vacuuming mode.
462455
std::vector<URI> commit_uris_to_vacuum;
463456
std::vector<URI> commit_uris_to_ignore;
464457
if (mode_ == ArrayDirectoryMode::VACUUM_FRAGMENTS) {
465-
for (auto& uri : fragment_uris_to_vacuum.value()) {
458+
for (auto& uri : fragment_uris_to_vacuum) {
466459
auto commit_uri = get_commit_uri(uri);
467460
if (consolidated_commit_uris_set_.count(commit_uri.c_str()) == 0) {
468461
commit_uris_to_vacuum.emplace_back(commit_uri);
@@ -473,20 +466,15 @@ ArrayDirectory::filtered_fragment_uris(const bool full_overlap_only) const {
473466
}
474467

475468
// Compute filtered fragment URIs
476-
auto&& [st2, fragment_filtered_uris] = compute_filtered_uris(
477-
full_overlap_only,
478-
unfiltered_fragment_uris_,
479-
fragment_uris_to_vacuum.value());
480-
if (!st2.ok()) {
481-
throw std::logic_error(st.message());
482-
}
469+
auto fragment_filtered_uris = compute_filtered_uris(
470+
full_overlap_only, unfiltered_fragment_uris_, fragment_uris_to_vacuum);
483471

484472
return FilteredFragmentUris(
485-
std::move(fragment_uris_to_vacuum.value()),
473+
std::move(fragment_uris_to_vacuum),
486474
std::move(commit_uris_to_vacuum),
487475
std::move(commit_uris_to_ignore),
488-
std::move(fragment_vac_uris_to_vacuum.value()),
489-
std::move(fragment_filtered_uris.value()));
476+
std::move(fragment_vac_uris_to_vacuum),
477+
std::move(fragment_filtered_uris));
490478
}
491479

492480
const std::vector<URI>& ArrayDirectory::fragment_meta_uris() const {
@@ -610,16 +598,14 @@ std::vector<URI> ArrayDirectory::list_root_dir_uris() {
610598
return ls(uri_);
611599
}
612600

613-
tuple<Status, optional<std::vector<URI>>>
614-
ArrayDirectory::load_root_dir_uris_v1_v11(
601+
std::vector<URI> ArrayDirectory::load_root_dir_uris_v1_v11(
615602
const std::vector<URI>& root_dir_uris) {
616603
// Compute the fragment URIs
617-
auto&& [st1, fragment_uris] = compute_fragment_uris_v1_v11(root_dir_uris);
618-
RETURN_NOT_OK_TUPLE(st1, nullopt);
604+
auto fragment_uris = compute_fragment_uris_v1_v11(root_dir_uris);
619605

620606
fragment_meta_uris_ = compute_fragment_meta_uris(root_dir_uris);
621607

622-
return {Status::Ok(), fragment_uris.value()};
608+
return fragment_uris;
623609
}
624610

625611
std::vector<URI> ArrayDirectory::list_commits_dir_uris() {
@@ -628,8 +614,7 @@ std::vector<URI> ArrayDirectory::list_commits_dir_uris() {
628614
return ls(uri_.join_path(constants::array_commits_dir_name));
629615
}
630616

631-
tuple<Status, optional<std::vector<URI>>>
632-
ArrayDirectory::load_commits_dir_uris_v12_or_higher(
617+
std::vector<URI> ArrayDirectory::load_commits_dir_uris_v12_or_higher(
633618
const std::vector<URI>& commits_dir_uris,
634619
const std::vector<URI>& consolidated_uris) {
635620
std::vector<URI> fragment_uris;
@@ -682,7 +667,7 @@ ArrayDirectory::load_commits_dir_uris_v12_or_higher(
682667
}
683668
}
684669

685-
return {Status::Ok(), fragment_uris};
670+
return fragment_uris;
686671
}
687672

688673
std::vector<URI>
@@ -827,18 +812,12 @@ void ArrayDirectory::load_array_meta_uris() {
827812
}
828813

829814
// Compute array metadata URIs and vacuum URIs to vacuum. */
830-
auto&& [st1, array_meta_uris_to_vacuum, array_meta_vac_uris_to_vacuum] =
815+
std::tie(array_meta_uris_to_vacuum_, array_meta_vac_uris_to_vacuum_) =
831816
compute_uris_to_vacuum(true, array_meta_dir_uris);
832-
throw_if_not_ok(st1);
833-
array_meta_uris_to_vacuum_ = std::move(array_meta_uris_to_vacuum.value());
834-
array_meta_vac_uris_to_vacuum_ =
835-
std::move(array_meta_vac_uris_to_vacuum.value());
836817

837818
// Compute filtered array metadata URIs
838-
auto&& [st2, array_meta_filtered_uris] = compute_filtered_uris(
819+
array_meta_uris_ = compute_filtered_uris(
839820
true, array_meta_dir_uris, array_meta_uris_to_vacuum_);
840-
throw_if_not_ok(st2);
841-
array_meta_uris_ = std::move(array_meta_filtered_uris.value());
842821
array_meta_dir_uris.clear();
843822
}
844823

@@ -901,8 +880,7 @@ void ArrayDirectory::load_commits_uris_to_consolidate(
901880
}
902881
}
903882

904-
tuple<Status, optional<std::vector<URI>>>
905-
ArrayDirectory::compute_fragment_uris_v1_v11(
883+
std::vector<URI> ArrayDirectory::compute_fragment_uris_v1_v11(
906884
const std::vector<URI>& array_dir_uris) const {
907885
std::vector<URI> fragment_uris;
908886

@@ -937,7 +915,7 @@ ArrayDirectory::compute_fragment_uris_v1_v11(
937915
}
938916
}
939917

940-
return {Status::Ok(), fragment_uris};
918+
return fragment_uris;
941919
}
942920

943921
std::vector<URI> ArrayDirectory::compute_fragment_meta_uris(
@@ -994,7 +972,7 @@ bool ArrayDirectory::timestamps_overlap(
994972
}
995973
}
996974

997-
tuple<Status, optional<std::vector<URI>>, optional<std::vector<URI>>>
975+
tuple<std::vector<URI>, std::vector<URI>>
998976
ArrayDirectory::compute_uris_to_vacuum(
999977
const bool full_overlap_only, const std::vector<URI>& uris) const {
1000978
// Get vacuum URIs
@@ -1095,19 +1073,18 @@ ArrayDirectory::compute_uris_to_vacuum(
10951073
vac_uris_to_vacuum.emplace_back(vac_files[i]);
10961074
}
10971075

1098-
return {Status::Ok(), uris_to_vacuum, vac_uris_to_vacuum};
1076+
return {uris_to_vacuum, vac_uris_to_vacuum};
10991077
}
11001078

1101-
tuple<Status, optional<std::vector<TimestampedURI>>>
1102-
ArrayDirectory::compute_filtered_uris(
1079+
std::vector<TimestampedURI> ArrayDirectory::compute_filtered_uris(
11031080
const bool full_overlap_only,
11041081
const std::vector<URI>& uris,
11051082
const std::vector<URI>& to_ignore) const {
11061083
std::vector<TimestampedURI> filtered_uris;
11071084

11081085
// Do nothing if there are not enough URIs
11091086
if (uris.empty()) {
1110-
return {Status::Ok(), filtered_uris};
1087+
return filtered_uris;
11111088
}
11121089

11131090
// Get the URIs that must be ignored
@@ -1156,7 +1133,7 @@ ArrayDirectory::compute_filtered_uris(
11561133
// Sort the names based on the timestamps
11571134
std::sort(filtered_uris.begin(), filtered_uris.end());
11581135

1159-
return {Status::Ok(), filtered_uris};
1136+
return filtered_uris;
11601137
}
11611138

11621139
Status ArrayDirectory::compute_array_schema_uris(

tiledb/sm/array/array_directory.h

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ class ArrayDirectory {
323323
*
324324
* @param array_schema_uri The URI path of the array schema.
325325
* @param encryption_key The encryption key to use.
326-
* @return Status, the loaded array schema
326+
* @return the loaded array schema
327327
*/
328328
static shared_ptr<ArraySchema> load_array_schema_from_uri(
329329
ContextResources& resources,
@@ -348,7 +348,7 @@ class ArrayDirectory {
348348
* @param array_dir The ArrayDirectory object used to retrieve the
349349
* various URIs in the array directory.
350350
* @param encryption_key The encryption key to use.
351-
* @return Status, a new ArraySchema
351+
* @return a new ArraySchema
352352
*/
353353
shared_ptr<ArraySchema> load_array_schema_latest(
354354
const EncryptionKey& encryption_key,
@@ -361,10 +361,8 @@ class ArrayDirectory {
361361
* @param array_dir The ArrayDirectory object used to retrieve the
362362
* various URIs in the array directory.
363363
* @param encryption_key The encryption key to use.
364-
* @return tuple of Status, latest array schema and all array schemas.
365-
* Status Ok on success, else error
366-
* ArraySchema The latest array schema.
367-
* ArraySchemaMap Map of all array schemas loaded, keyed by name
364+
* @return tuple of latest array schema and all array schemas loaded, keyed by
365+
* name.
368366
*/
369367
tuple<
370368
shared_ptr<ArraySchema>,
@@ -377,10 +375,7 @@ class ArrayDirectory {
377375
* Loads all schemas of an array from persistent storage into memory.
378376
*
379377
* @param encryption_key The encryption key to use.
380-
* @return tuple of Status and optional unordered map. If Status is an error
381-
* the unordered_map will be nullopt
382-
* Status Ok on success, else error
383-
* ArraySchemaMap Map of all array schemas found keyed by name
378+
* @return Map of all array schemas found keyed by name
384379
*/
385380
std::unordered_map<std::string, shared_ptr<ArraySchema>>
386381
load_all_array_schemas(
@@ -663,9 +658,9 @@ class ArrayDirectory {
663658
/**
664659
* Loads the root directory uris for v1 to v11.
665660
*
666-
* @return Status, vector of fragment URIs.
661+
* @return vector of fragment URIs.
667662
*/
668-
tuple<Status, optional<std::vector<URI>>> load_root_dir_uris_v1_v11(
663+
std::vector<URI> load_root_dir_uris_v1_v11(
669664
const std::vector<URI>& root_dir_uris);
670665

671666
/**
@@ -678,9 +673,9 @@ class ArrayDirectory {
678673
/**
679674
* Loads the commit directory uris for v12 or higher.
680675
*
681-
* @return Status, vector of fragment URIs.
676+
* @return vector of fragment URIs.
682677
*/
683-
tuple<Status, optional<std::vector<URI>>> load_commits_dir_uris_v12_or_higher(
678+
std::vector<URI> load_commits_dir_uris_v12_or_higher(
684679
const std::vector<URI>& commits_dir_uris,
685680
const std::vector<URI>& consolidated_uris);
686681

@@ -722,7 +717,7 @@ class ArrayDirectory {
722717
* Computes the fragment URIs from the input array directory URIs, for
723718
* versions 1 to 11.
724719
*/
725-
tuple<Status, optional<std::vector<URI>>> compute_fragment_uris_v1_v11(
720+
std::vector<URI> compute_fragment_uris_v1_v11(
726721
const std::vector<URI>& array_dir_uris) const;
727722

728723
/**
@@ -736,11 +731,10 @@ class ArrayDirectory {
736731
*
737732
* @param full_overlap_only Only enable full overlap.
738733
* @param uris The URIs to calculate the URIs to vacuum from.
739-
* @return Status, a vector of the URIs to vacuum, a vector of
740-
* the vac file URIs to vacuum.
734+
* @return a vector of the URIs to vacuum, a vector of the vac file URIs to
735+
* vacuum.
741736
*/
742-
tuple<Status, optional<std::vector<URI>>, optional<std::vector<URI>>>
743-
compute_uris_to_vacuum(
737+
tuple<std::vector<URI>, std::vector<URI>> compute_uris_to_vacuum(
744738
const bool full_overlap_only, const std::vector<URI>& uris) const;
745739

746740
/**
@@ -750,9 +744,9 @@ class ArrayDirectory {
750744
* @param full_overlap_only Only enable full overlap.
751745
* @param uris The URIs to filter.
752746
* @param to_ignore The URIs to ignore (because they are vacuumed).
753-
* @return Status, vector of filtered timestamped URIs.
747+
* @return vector of filtered timestamped URIs.
754748
*/
755-
tuple<Status, optional<std::vector<TimestampedURI>>> compute_filtered_uris(
749+
std::vector<TimestampedURI> compute_filtered_uris(
756750
const bool full_overlap_only,
757751
const std::vector<URI>& uris,
758752
const std::vector<URI>& to_ignore) const;

0 commit comments

Comments
 (0)