Skip to content

Commit 853efa1

Browse files
obdevlinbo-lin
authored andcommitted
[CP] Fix complete-data logic in brute force search path
Co-authored-by: linbo-lin <1434442536@qq.com>
1 parent 0122f92 commit 853efa1

3 files changed

Lines changed: 4 additions & 7 deletions

File tree

src/share/vector_index/ob_plugin_vector_index_adaptor.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,7 @@ class ObVectorQueryConditions {
366366
is_post_with_filter_ = false;
367367
ob_sparse_drop_ratio_search_ = 0;
368368
n_candidate_ = 0;
369+
only_complete_data_ = false;
369370
}
370371
TO_STRING_KV(K_(query_limit), K_(query_order), K_(ef_search), K_(query_vector), K_(query_scn), K_(ob_sparse_drop_ratio_search), K_(n_candidate));
371372

src/sql/das/iter/ob_das_hnsw_scan_iter.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,6 @@ int ObDASHNSWScanIter::inner_reuse()
380380
vec_op_alloc_.reset();
381381
query_cond_.reset();
382382
go_brute_force_ = false;
383-
only_complete_data_ = false;
384383

385384
if (OB_SUCC(ret) && OB_FAIL(set_vec_index_param(vec_aux_ctdef_->vec_index_param_))) {
386385
LOG_WARN("failed to set vec index param", K(ret));
@@ -849,7 +848,6 @@ int ObDASHNSWScanIter::reset_filter_path()
849848
} else {
850849
query_cond_.reset();
851850
go_brute_force_ = false;
852-
only_complete_data_ = false;
853851
can_retry_ = false;
854852
if (OB_NOT_NULL(tmp_adaptor_vid_iter_)) {
855853
tmp_adaptor_vid_iter_->reset();
@@ -1515,9 +1513,10 @@ int ObDASHNSWScanIter::process_adaptor_state_pre_filter(
15151513
if (OB_FAIL(process_adaptor_state_pre_filter_brute_force(ada_ctx, adaptor, brute_vids, brute_cnt, need_complete_data, true))) {
15161514
LOG_WARN("hnsw pre filter(brute force) failed to query result.", K(ret));
15171515
} else if (need_complete_data) {
1518-
only_complete_data_ = true;
1516+
query_cond_.only_complete_data_ = true;
15191517
if (OB_FAIL(process_adaptor_state_post_filter(ada_ctx, adaptor, is_vectorized))) {
15201518
LOG_WARN("failed to process adaptor state post filter", K(ret));
1519+
} else if (OB_FALSE_IT(need_complete_data = false)) {
15211520
} else if (OB_FAIL(process_adaptor_state_pre_filter_brute_force(ada_ctx, adaptor, brute_vids, brute_cnt, need_complete_data, false))) {
15221521
LOG_WARN("hnsw pre filter(brute force) failed to query result.", K(ret));
15231522
}
@@ -3251,7 +3250,6 @@ int ObDASHNSWScanIter::set_vector_query_condition(ObVectorQueryConditions &query
32513250
} else {
32523251
query_cond.query_order_ = true;
32533252
query_cond.query_scn_ = snapshot_scan_param_.snapshot_.core_.version_;
3254-
query_cond.only_complete_data_ = only_complete_data_; // ture when search brute force
32553253
query_cond.scan_param_ = &snapshot_scan_param_;
32563254
query_cond.rel_count_ = vec_aux_ctdef_->relevance_col_cnt_;
32573255
query_cond.rel_map_ptr_ = &rel_map_;
@@ -3290,7 +3288,7 @@ int ObDASHNSWScanIter::set_vector_query_condition(ObVectorQueryConditions &query
32903288
} else {
32913289
query_cond.query_vector_ = hybrid_search_vec_;
32923290
}
3293-
LOG_TRACE("vector index show basic hnsw query cond", K(query_cond.only_complete_data_), K(query_cond.ef_search_), K(query_cond.query_limit_),
3291+
LOG_TRACE("vector index show basic hnsw query cond", K(query_cond.ef_search_), K(query_cond.query_limit_),
32943292
K(query_cond.extra_column_count_), K(query_cond.query_vector_));
32953293
}
32963294
return ret;

src/sql/das/iter/ob_das_hnsw_scan_iter.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,6 @@ class ObDASHNSWScanIter : public ObDASIter
297297
distance_calc_(nullptr),
298298
is_primary_pre_with_rowkey_with_filter_(false),
299299
go_brute_force_(false),
300-
only_complete_data_(false),
301300
extra_column_count_(0),
302301
simple_cmp_info_(),
303302
vec_index_type_(ObVecIndexType::VEC_INDEX_INVALID),
@@ -581,7 +580,6 @@ class ObDASHNSWScanIter : public ObDASIter
581580
ObExpr* distance_calc_;
582581
bool is_primary_pre_with_rowkey_with_filter_;
583582
bool go_brute_force_;
584-
bool only_complete_data_;
585583
int64_t extra_column_count_;
586584
ObHnswSimpleCmpInfo simple_cmp_info_;
587585
// extra_info idx to rowkey idx, because of extra_info is sort by column id

0 commit comments

Comments
 (0)