Skip to content

Commit 55443f2

Browse files
[8.2] MOD-12371: Add invalid option for hybrid policy (#852)
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 (cherry picked from commit 5f20db1) Co-authored-by: Itzikvaknin <82322982+Itzikvaknin@users.noreply.github.com>
1 parent 0316762 commit 55443f2

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
@@ -95,8 +95,17 @@ TYPED_TEST(CommonIndexTest, ResolveQueryRuntimeParams) {
9595
QUERY_TYPE_HYBRID),
9696
VecSimParamResolverErr_InvalidPolicy_NExits);
9797

98-
rparams[1].value = "batches";
99-
rparams[1].valLen = strlen("batches");
98+
rparams[1] = (VecSimRawParam){.name = "HYBRID_POLICY",
99+
.nameLen = strlen("HYBRID_POLICY"),
100+
.value = VECSIM_POLICY_INVALID,
101+
.valLen = strlen(VECSIM_POLICY_INVALID)};
102+
103+
ASSERT_EQ(VecSimIndex_ResolveParams(index, rparams.data(), rparams.size(), &qparams,
104+
QUERY_TYPE_HYBRID),
105+
VecSimParamResolverErr_InvalidPolicy_NExits);
106+
107+
rparams[1].value = VECSIM_POLICY_BATCHES;
108+
rparams[1].valLen = strlen(VECSIM_POLICY_BATCHES);
100109
ASSERT_EQ(VecSimIndex_ResolveParams(index, rparams.data(), rparams.size(), &qparams,
101110
QUERY_TYPE_HYBRID),
102111
VecSim_OK);
@@ -106,8 +115,8 @@ TYPED_TEST(CommonIndexTest, ResolveQueryRuntimeParams) {
106115
// Both params are "hybrid policy".
107116
rparams[0] = (VecSimRawParam){.name = "HYBRID_POLICY",
108117
.nameLen = strlen("HYBRID_POLICY"),
109-
.value = "ADhOC_bf",
110-
.valLen = strlen("ADhOC_bf")};
118+
.value = VECSIM_POLICY_ADHOC_BF,
119+
.valLen = strlen(VECSIM_POLICY_ADHOC_BF)};
111120
ASSERT_EQ(VecSimIndex_ResolveParams(index, rparams.data(), rparams.size(), &qparams,
112121
QUERY_TYPE_HYBRID),
113122
VecSimParamResolverErr_AlreadySet);
@@ -128,8 +137,8 @@ TYPED_TEST(CommonIndexTest, ResolveQueryRuntimeParams) {
128137

129138
rparams[0] = (VecSimRawParam){.name = "HYBRID_POLICY",
130139
.nameLen = strlen("HYBRID_POLICY"),
131-
.value = "batches",
132-
.valLen = strlen("batches")};
140+
.value = VECSIM_POLICY_BATCHES,
141+
.valLen = strlen(VECSIM_POLICY_BATCHES)};
133142
ASSERT_EQ(VecSimIndex_ResolveParams(index, rparams.data(), rparams.size(), &qparams,
134143
QUERY_TYPE_HYBRID),
135144
VecSim_OK);

0 commit comments

Comments
 (0)