From ea835bf17f6ec76146cf403d67f847ad74a0fb6e Mon Sep 17 00:00:00 2001 From: Kishore Nallan Date: Tue, 6 Sep 2022 15:27:00 +0530 Subject: [PATCH] Don't return empty override rule query and match. --- src/override.cpp | 11 +++++++++-- test/collection_override_test.cpp | 5 +++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/override.cpp b/src/override.cpp index aba4f8d1..efe0002b 100644 --- a/src/override.cpp +++ b/src/override.cpp @@ -195,8 +195,15 @@ Option override_t::parse(const nlohmann::json& override_json, const std::s nlohmann::json override_t::to_json() const { nlohmann::json override; override["id"] = id; - override["rule"]["query"] = rule.query; - override["rule"]["match"] = rule.match; + + if(!rule.query.empty()) { + override["rule"]["query"] = rule.query; + } + + if(!rule.match.empty()) { + override["rule"]["match"] = rule.match; + } + if(!rule.filter_by.empty()) { override["rule"]["filter_by"] = rule.filter_by; } diff --git a/test/collection_override_test.cpp b/test/collection_override_test.cpp index 9d29806e..0c8955ce 100644 --- a/test/collection_override_test.cpp +++ b/test/collection_override_test.cpp @@ -1002,6 +1002,11 @@ TEST_F(CollectionOverrideTest, FilterRule) { ASSERT_EQ(2, results["hits"].size()); ASSERT_EQ("0", results["hits"][0]["document"]["id"].get()); ASSERT_EQ("2", results["hits"][1]["document"]["id"].get()); + + override_json_ser = override_rule2.to_json(); + ASSERT_EQ("points: 1", override_json_ser["rule"]["filter_by"]); + ASSERT_EQ(0, override_json_ser["rule"].count("query")); + ASSERT_EQ(0, override_json_ser["rule"].count("match")); } TEST_F(CollectionOverrideTest, PinnedAndHiddenHits) {