diff options
Diffstat (limited to 'searchlib/src/vespa/searchlib/queryeval/blueprint.h')
-rw-r--r-- | searchlib/src/vespa/searchlib/queryeval/blueprint.h | 5 |
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; |