Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions src/db/index/column/vector_column/engine_helper.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,11 @@ class ProximaEngineHelper {
if (query_params.query_params) {
auto db_hnsw_query_params = dynamic_cast<const HnswQueryParams *>(
query_params.query_params.get());
if (!db_hnsw_query_params) {
return tl::make_unexpected(Status::InvalidArgument(
"HNSW query expects HnswQueryParam, got incompatible query "
"param type"));
}
hnsw_query_param->ef_search = db_hnsw_query_params->ef();
hnsw_query_param->prefetch_offset =
db_hnsw_query_params->prefetch_offset();
Expand All @@ -184,6 +189,11 @@ class ProximaEngineHelper {
auto db_hnsw_rabitq_query_params =
dynamic_cast<const HnswRabitqQueryParams *>(
query_params.query_params.get());
if (!db_hnsw_rabitq_query_params) {
return tl::make_unexpected(Status::InvalidArgument(
"HNSW_RABITQ query expects HnswRabitqQueryParam, got "
"incompatible query param type"));
}
hnsw_query_param->ef_search = db_hnsw_rabitq_query_params->ef();
}
return std::move(hnsw_query_param);
Expand All @@ -202,6 +212,11 @@ class ProximaEngineHelper {
if (query_params.query_params) {
auto db_ivf_query_params = dynamic_cast<const IVFQueryParams *>(
query_params.query_params.get());
if (!db_ivf_query_params) {
return tl::make_unexpected(Status::InvalidArgument(
"IVF query expects IVFQueryParam, got incompatible query "
"param type"));
}
ivf_query_param->nprobe = db_ivf_query_params->nprobe();
}
return std::move(ivf_query_param);
Expand All @@ -221,6 +236,11 @@ class ProximaEngineHelper {
auto db_diskann_query_params =
dynamic_cast<const DiskAnnQueryParams *>(
query_params.query_params.get());
if (!db_diskann_query_params) {
return tl::make_unexpected(Status::InvalidArgument(
"DiskANN query expects DiskAnnQueryParam, got incompatible "
"query param type"));
}
diskann_query_param->list_size =
static_cast<uint32_t>(db_diskann_query_params->list_size());
}
Expand All @@ -240,6 +260,11 @@ class ProximaEngineHelper {
if (query_params.query_params) {
auto db_vamana_query_params = dynamic_cast<const VamanaQueryParams *>(
query_params.query_params.get());
if (!db_vamana_query_params) {
return tl::make_unexpected(Status::InvalidArgument(
"Vamana query expects VamanaQueryParam, got incompatible "
"query param type"));
}
vamana_query_param->ef_search =
static_cast<uint32_t>(db_vamana_query_params->ef_search());
vamana_query_param->prefetch_offset =
Expand Down
Loading