diff options
author | Arne H Juul <arnej@yahooinc.com> | 2021-10-18 13:53:55 +0000 |
---|---|---|
committer | Arne H Juul <arnej@yahooinc.com> | 2021-10-18 13:55:00 +0000 |
commit | 0c76851a13f75fdca3f859ea6135b29e2179656f (patch) | |
tree | a5ea1fe5d97bfb8e86d5ebad850ae6f90294477d /searchcore/src | |
parent | a6784673e65b55a7812d208c06f76ad903b81cab (diff) |
add ITEM_TRUE and ITEM_FALSE query nodes
Diffstat (limited to 'searchcore/src')
5 files changed, 16 insertions, 2 deletions
diff --git a/searchcore/src/tests/proton/matching/unpacking_iterators_optimizer/unpacking_iterators_optimizer_test.cpp b/searchcore/src/tests/proton/matching/unpacking_iterators_optimizer/unpacking_iterators_optimizer_test.cpp index 5dc9808a5b6..68960e0f919 100644 --- a/searchcore/src/tests/proton/matching/unpacking_iterators_optimizer/unpacking_iterators_optimizer_test.cpp +++ b/searchcore/src/tests/proton/matching/unpacking_iterators_optimizer/unpacking_iterators_optimizer_test.cpp @@ -67,6 +67,8 @@ struct DumpQuery : QueryVisitor { void visit(PredicateQuery &) override {} void visit(RegExpTerm &) override {} void visit(NearestNeighborTerm &) override {} + void visit(search::query::TrueQueryNode &) override {} + void visit(search::query::FalseQueryNode &) override {} }; std::string dump_query(Node &root) { diff --git a/searchcore/src/vespa/searchcore/proton/matching/blueprintbuilder.cpp b/searchcore/src/vespa/searchcore/proton/matching/blueprintbuilder.cpp index 0d640f2a599..a12d556ff5f 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/blueprintbuilder.cpp +++ b/searchcore/src/vespa/searchcore/proton/matching/blueprintbuilder.cpp @@ -144,7 +144,6 @@ protected: void visit(ProtonONear &n) override { buildIntermediate(new ONearBlueprint(n.getDistance()), n); } void visit(ProtonSameElement &n) override { buildSameElement(n); } - void visit(ProtonWeightedSetTerm &n) override { buildTerm(n); } void visit(ProtonDotProduct &n) override { buildTerm(n); } void visit(ProtonWandTerm &n) override { buildTerm(n); } @@ -161,6 +160,13 @@ protected: void visit(ProtonRegExpTerm &n) override { buildTerm(n); } void visit(ProtonNearestNeighborTerm &n) override { buildTerm(n); } + void visit(search::query::TrueQueryNode &) override { + _result = std::make_unique<AlwaysTrueBlueprint>(); + } + void visit(search::query::FalseQueryNode &) override { + _result = std::make_unique<EmptyBlueprint>(); + } + public: BlueprintBuilderVisitor(const IRequestContext & requestContext, ISearchContext &context) : _requestContext(requestContext), diff --git a/searchcore/src/vespa/searchcore/proton/matching/same_element_builder.cpp b/searchcore/src/vespa/searchcore/proton/matching/same_element_builder.cpp index a3722c1e3b9..9e415ed699f 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/same_element_builder.cpp +++ b/searchcore/src/vespa/searchcore/proton/matching/same_element_builder.cpp @@ -51,7 +51,6 @@ public: void visit(ProtonRank &) override {} void visit(ProtonWeakAnd &) override {} void visit(ProtonSameElement &) override {} - void visit(ProtonWeightedSetTerm &) override {} void visit(ProtonDotProduct &) override {} void visit(ProtonWandTerm &) override {} @@ -68,6 +67,8 @@ public: void visit(ProtonPredicateQuery &) override {} void visit(ProtonRegExpTerm &n) override { visitTerm(n); } void visit(ProtonNearestNeighborTerm &) override {} + void visit(search::query::TrueQueryNode &) override {} + void visit(search::query::FalseQueryNode &) override {} }; } // namespace proton::matching::<unnamed> diff --git a/searchcore/src/vespa/searchcore/proton/matching/termdatafromnode.cpp b/searchcore/src/vespa/searchcore/proton/matching/termdatafromnode.cpp index 08ec0e767db..c752ed76909 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/termdatafromnode.cpp +++ b/searchcore/src/vespa/searchcore/proton/matching/termdatafromnode.cpp @@ -26,6 +26,8 @@ struct TermDataFromTermVisitor void visit(ProtonRank &) override {} void visit(ProtonWeakAnd &) override {} void visit(ProtonSameElement &) override { } + void visit(search::query::TrueQueryNode &) override {} + void visit(search::query::FalseQueryNode &) override {} void visit(ProtonWeightedSetTerm &n) override { visitTerm(n); } void visit(ProtonDotProduct &n) override { visitTerm(n); } diff --git a/searchcore/src/vespa/searchcore/proton/matching/unpacking_iterators_optimizer.cpp b/searchcore/src/vespa/searchcore/proton/matching/unpacking_iterators_optimizer.cpp index eada88010dd..bcb482a58ab 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/unpacking_iterators_optimizer.cpp +++ b/searchcore/src/vespa/searchcore/proton/matching/unpacking_iterators_optimizer.cpp @@ -57,6 +57,9 @@ struct TermExpander : QueryVisitor { void visit(PredicateQuery &) override {} void visit(RegExpTerm &) override {} void visit(NearestNeighborTerm &) override {} + void visit(search::query::TrueQueryNode &) override {} + void visit(search::query::FalseQueryNode &) override {} + void flush(Intermediate &parent) { for (Node::UP &term: terms) { parent.append(std::move(term)); |