aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/queryeval
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2020-05-08 10:04:24 +0000
committerArne Juul <arnej@verizonmedia.com>2020-05-08 10:04:24 +0000
commit48463c7ee40e65d819320ee847db366f52891de5 (patch)
tree709b241333da614981a6a7c3a645788080358c53 /searchlib/src/tests/queryeval
parentab94fe1f66ed93be672b5ea4435fb155e0e22b50 (diff)
unit test want_global_filter aggregation
Diffstat (limited to 'searchlib/src/tests/queryeval')
-rw-r--r--searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp14
-rw-r--r--searchlib/src/tests/queryeval/blueprint/mysearch.h9
2 files changed, 22 insertions, 1 deletions
diff --git a/searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp b/searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp
index b73bae67147..dcd48949da6 100644
--- a/searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp
+++ b/searchlib/src/tests/queryeval/blueprint/intermediate_blueprints_test.cpp
@@ -62,6 +62,9 @@ TEST("test AndNot Blueprint") {
AndNotBlueprint a;
a.addChild(ap(MyLeafSpec(10).addField(1, 1).create()));
EXPECT_EQUAL(0u, a.exposeFields().size());
+ EXPECT_EQUAL(false, a.getState().want_global_filter());
+ a.addChild(ap(MyLeafSpec(20).addField(1, 1).want_global_filter().create()));
+ EXPECT_EQUAL(true, a.getState().want_global_filter());
}
{
std::vector<Blueprint *> children;
@@ -130,6 +133,9 @@ TEST("test And Blueprint") {
AndBlueprint a;
a.addChild(ap(MyLeafSpec(10).addField(1, 1).create()));
EXPECT_EQUAL(0u, a.exposeFields().size());
+ EXPECT_EQUAL(false, a.getState().want_global_filter());
+ a.addChild(ap(MyLeafSpec(20).addField(1, 1).want_global_filter().create()));
+ EXPECT_EQUAL(true, a.getState().want_global_filter());
}
{
std::vector<Blueprint *> children;
@@ -202,6 +208,10 @@ TEST("test Or Blueprint") {
EXPECT_EQUAL(2u, a->getState().numFields());
o.addChild(ap(MyLeafSpec(0, true).create()));
EXPECT_EQUAL(0u, a->getState().numFields());
+
+ EXPECT_EQUAL(false, o.getState().want_global_filter());
+ o.addChild(ap(MyLeafSpec(20).addField(1, 1).want_global_filter().create()));
+ EXPECT_EQUAL(true, o.getState().want_global_filter());
}
{
std::vector<Blueprint *> children;
@@ -349,6 +359,10 @@ TEST("test Rank Blueprint") {
RankBlueprint a;
a.addChild(ap(MyLeafSpec(10).addField(1, 1).create()));
EXPECT_EQUAL(0u, a.exposeFields().size());
+
+ EXPECT_EQUAL(false, a.getState().want_global_filter());
+ a.addChild(ap(MyLeafSpec(20).addField(1, 1).want_global_filter().create()));
+ EXPECT_EQUAL(true, a.getState().want_global_filter());
}
{
std::vector<Blueprint *> children;
diff --git a/searchlib/src/tests/queryeval/blueprint/mysearch.h b/searchlib/src/tests/queryeval/blueprint/mysearch.h
index 82ef58147c3..6fb2a52143d 100644
--- a/searchlib/src/tests/queryeval/blueprint/mysearch.h
+++ b/searchlib/src/tests/queryeval/blueprint/mysearch.h
@@ -131,6 +131,7 @@ public:
set_cost_tier(value);
return *this;
}
+ using LeafBlueprint::set_want_global_filter;
};
//-----------------------------------------------------------------------------
@@ -141,10 +142,11 @@ private:
FieldSpecBaseList _fields;
Blueprint::HitEstimate _estimate;
uint32_t _cost_tier;
+ bool _want_global_filter;
public:
explicit MyLeafSpec(uint32_t estHits, bool empty = false)
- : _fields(), _estimate(estHits, empty), _cost_tier(0) {}
+ : _fields(), _estimate(estHits, empty), _cost_tier(0), _want_global_filter(false) {}
MyLeafSpec &addField(uint32_t fieldId, uint32_t handle) {
_fields.add(FieldSpecBase(fieldId, handle));
@@ -155,6 +157,10 @@ public:
_cost_tier = value;
return *this;
}
+ MyLeafSpec &want_global_filter() {
+ _want_global_filter = true;
+ return *this;
+ }
MyLeaf *create() const {
return create<MyLeaf>();
}
@@ -165,6 +171,7 @@ public:
if (_cost_tier > 0) {
leaf->cost_tier(_cost_tier);
}
+ leaf->set_want_global_filter(_want_global_filter);
return leaf;
}
};