mirror of https://github.com/milvus-io/milvus.git
Use all() api for bitset check (#20462)
Signed-off-by: Li Liu <liliu@LideMacBook-Pro.local> Signed-off-by: Li Liu <liliu@LideMacBook-Pro.local> Co-authored-by: Li Liu <liliu@LideMacBook-Pro.local>pull/20483/head
parent
a68cec85af
commit
174310a14e
|
@ -88,22 +88,23 @@ ExecPlanNodeVisitor::VectorVisitorImpl(VectorPlanNode& node) {
|
|||
return;
|
||||
}
|
||||
|
||||
BitsetType bitset_holder;
|
||||
std::unique_ptr<BitsetType> bitset_holder;
|
||||
if (node.predicate_.has_value()) {
|
||||
bitset_holder = ExecExprVisitor(*segment, active_count, timestamp_).call_child(*node.predicate_.value());
|
||||
bitset_holder.flip();
|
||||
bitset_holder = std::make_unique<BitsetType>(
|
||||
ExecExprVisitor(*segment, active_count, timestamp_).call_child(*node.predicate_.value()));
|
||||
bitset_holder->flip();
|
||||
} else {
|
||||
bitset_holder.resize(active_count, false);
|
||||
bitset_holder = std::make_unique<BitsetType>(active_count, false);
|
||||
}
|
||||
segment->mask_with_timestamps(bitset_holder, timestamp_);
|
||||
segment->mask_with_timestamps(*bitset_holder, timestamp_);
|
||||
|
||||
segment->mask_with_delete(bitset_holder, active_count, timestamp_);
|
||||
segment->mask_with_delete(*bitset_holder, active_count, timestamp_);
|
||||
// if bitset_holder is all 1's, we got empty result
|
||||
if (bitset_holder.count() == bitset_holder.size()) {
|
||||
if (bitset_holder->all()) {
|
||||
search_result_opt_ = empty_search_result(num_queries, node.search_info_);
|
||||
return;
|
||||
}
|
||||
BitsetView final_view = bitset_holder;
|
||||
BitsetView final_view = *bitset_holder;
|
||||
segment->vector_search(node.search_info_, src_data, num_queries, timestamp_, final_view, search_result);
|
||||
|
||||
search_result_opt_ = std::move(search_result);
|
||||
|
|
Loading…
Reference in New Issue