Skip to content

Commit 5f20db1

Browse files
authored
MOD-12371: Add invalid option for hybrid policy (#848)
* Add invalid option for hybrid policy and expose it in vec_sim_common.h for external use * Test VECSIM_POLICY_INVALID * Change hard coded strings to use new macros * Format
1 parent e4466dc commit 5f20db1

File tree

3 files changed

+24
-8
lines changed

3 files changed

+24
-8
lines changed

src/VecSim/vec_sim.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,12 @@ static VecSimResolveCode _ResolveParams_HybridPolicy(VecSimRawParam rparam,
152152
if (qparams->searchMode != 0) {
153153
return VecSimParamResolverErr_AlreadySet;
154154
}
155-
if (!strcasecmp(rparam.value, "batches")) {
155+
if (!strcasecmp(rparam.value, VECSIM_POLICY_BATCHES)) {
156156
qparams->searchMode = HYBRID_BATCHES;
157-
} else if (!strcasecmp(rparam.value, "adhoc_bf")) {
157+
} else if (!strcasecmp(rparam.value, VECSIM_POLICY_ADHOC_BF)) {
158158
qparams->searchMode = HYBRID_ADHOC_BF;
159+
} else if (!strcasecmp(rparam.value, VECSIM_POLICY_INVALID)) {
160+
return VecSimParamResolverErr_InvalidPolicy_NExits;
159161
} else {
160162
return VecSimParamResolverErr_InvalidPolicy_NExits;
161163
}

src/VecSim/vec_sim_common.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ extern "C" {
2222
#define INVALID_LABEL SIZE_MAX
2323
#define UNUSED(x) (void)(x)
2424

25+
// Hybrid policy values
26+
#define VECSIM_POLICY_ADHOC_BF "adhoc_bf"
27+
#define VECSIM_POLICY_BATCHES "batches"
28+
#define VECSIM_POLICY_INVALID "invalid_policy"
29+
2530
// HNSW default parameters
2631
#define HNSW_DEFAULT_M 16
2732
#define HNSW_DEFAULT_EF_C 200

tests/unit/test_common.cpp

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,17 @@ TYPED_TEST(CommonIndexTest, ResolveQueryRuntimeParams) {
9898
QUERY_TYPE_HYBRID),
9999
VecSimParamResolverErr_InvalidPolicy_NExits);
100100

101-
rparams[1].value = "batches";
102-
rparams[1].valLen = strlen("batches");
101+
rparams[1] = (VecSimRawParam){.name = "HYBRID_POLICY",
102+
.nameLen = strlen("HYBRID_POLICY"),
103+
.value = VECSIM_POLICY_INVALID,
104+
.valLen = strlen(VECSIM_POLICY_INVALID)};
105+
106+
ASSERT_EQ(VecSimIndex_ResolveParams(index, rparams.data(), rparams.size(), &qparams,
107+
QUERY_TYPE_HYBRID),
108+
VecSimParamResolverErr_InvalidPolicy_NExits);
109+
110+
rparams[1].value = VECSIM_POLICY_BATCHES;
111+
rparams[1].valLen = strlen(VECSIM_POLICY_BATCHES);
103112
ASSERT_EQ(VecSimIndex_ResolveParams(index, rparams.data(), rparams.size(), &qparams,
104113
QUERY_TYPE_HYBRID),
105114
VecSim_OK);
@@ -109,8 +118,8 @@ TYPED_TEST(CommonIndexTest, ResolveQueryRuntimeParams) {
109118
// Both params are "hybrid policy".
110119
rparams[0] = (VecSimRawParam){.name = "HYBRID_POLICY",
111120
.nameLen = strlen("HYBRID_POLICY"),
112-
.value = "ADhOC_bf",
113-
.valLen = strlen("ADhOC_bf")};
121+
.value = VECSIM_POLICY_ADHOC_BF,
122+
.valLen = strlen(VECSIM_POLICY_ADHOC_BF)};
114123
ASSERT_EQ(VecSimIndex_ResolveParams(index, rparams.data(), rparams.size(), &qparams,
115124
QUERY_TYPE_HYBRID),
116125
VecSimParamResolverErr_AlreadySet);
@@ -131,8 +140,8 @@ TYPED_TEST(CommonIndexTest, ResolveQueryRuntimeParams) {
131140

132141
rparams[0] = (VecSimRawParam){.name = "HYBRID_POLICY",
133142
.nameLen = strlen("HYBRID_POLICY"),
134-
.value = "batches",
135-
.valLen = strlen("batches")};
143+
.value = VECSIM_POLICY_BATCHES,
144+
.valLen = strlen(VECSIM_POLICY_BATCHES)};
136145
ASSERT_EQ(VecSimIndex_ResolveParams(index, rparams.data(), rparams.size(), &qparams,
137146
QUERY_TYPE_HYBRID),
138147
VecSim_OK);

0 commit comments

Comments
 (0)