aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/vespa/searchlib/queryeval/blueprint.h
diff options
context:
space:
mode:
Diffstat (limited to 'searchlib/src/vespa/searchlib/queryeval/blueprint.h')
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/blueprint.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/searchlib/src/vespa/searchlib/queryeval/blueprint.h b/searchlib/src/vespa/searchlib/queryeval/blueprint.h
index 8d230b6ec01..c9ebab7ae9d 100644
--- a/searchlib/src/vespa/searchlib/queryeval/blueprint.h
+++ b/searchlib/src/vespa/searchlib/queryeval/blueprint.h
@@ -1,4 +1,4 @@
-// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once
@@ -26,6 +26,7 @@ namespace search::queryeval {
class SearchIterator;
class ExecuteInfo;
class MatchingElementsSearch;
+class LeafBlueprint;
/**
* A Blueprint is an intermediate representation of a search. More
@@ -251,6 +252,7 @@ public:
virtual bool isEquiv() const { return false; }
virtual bool isWhiteList() const { return false; }
virtual bool isIntermediate() const { return false; }
+ virtual LeafBlueprint * asLeaf() noexcept { return nullptr; }
virtual bool isAnd() const { return false; }
virtual bool isAndNot() const { return false; }
virtual bool isOr() const { return false; }
@@ -396,6 +398,7 @@ public:
void fetchPostings(const ExecuteInfo &execInfo) override;
void freeze() final;
SearchIteratorUP createSearch(fef::MatchData &md, bool strict) const override;
+ LeafBlueprint * asLeaf() noexcept final { return this; }
virtual bool getRange(vespalib::string & from, vespalib::string & to) const;
virtual SearchIteratorUP createLeafSearch(const fef::TermFieldMatchDataArray &tfmda, bool strict) const = 0;