tdbPartitionedMatrix
will automatically close Array's when done reading
#448
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
Today
tdbPartitionedMatrix
will leavestd::unique_ptr<tiledb::Array> partitioned_vectors_array_
andstd::unique_ptr<tiledb::Array> partitioned_ids_array_
open until the destructor. This was causing issues in #447 because we have a static function on our indexes which will try to calltiledb::Array::delete_fragments()
on theseArray
's, but that will throw if theArray
's are already open somewhere, which they are intdbPartitionedMatrix
.Testing
clear history with an open index
unit tests to Vamana and IVFPQ which make sure you can query and then callclear_history()
. Note that Vamana doesn't need the changes in this PR to pass that tests, but IVFPQ fails without it.tdb_partioned_matrix.load() = false
in several places that didn't have it.