diff options
4 files changed, 53 insertions, 24 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/matching/indexenvironment.h b/searchcore/src/vespa/searchcore/proton/matching/indexenvironment.h index 114f1ea7127..9a6417ab89f 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/indexenvironment.h +++ b/searchcore/src/vespa/searchcore/proton/matching/indexenvironment.h @@ -7,6 +7,7 @@ #include <vespa/searchlib/fef/properties.h> #include <vespa/searchlib/fef/tablemanager.h> #include <vespa/searchcommon/common/schema.h> +#include <vespa/vespalib/eval/value_cache/constant_value.h> namespace proton { namespace matching { @@ -42,31 +43,35 @@ public: const search::fef::Properties &props); // inherited from search::fef::IIndexEnvironment - virtual const search::fef::Properties &getProperties() const; + virtual const search::fef::Properties &getProperties() const override; // inherited from search::fef::IIndexEnvironment - virtual uint32_t getNumFields() const; + virtual uint32_t getNumFields() const override; // inherited from search::fef::IIndexEnvironment - virtual const search::fef::FieldInfo *getField(uint32_t id) const; + virtual const search::fef::FieldInfo *getField(uint32_t id) const override; // inherited from search::fef::IIndexEnvironment virtual const search::fef::FieldInfo * - getFieldByName(const string &name) const; + getFieldByName(const string &name) const override; // inherited from search::fef::IIndexEnvironment - virtual const search::fef::ITableManager &getTableManager() const; + virtual const search::fef::ITableManager &getTableManager() const override; virtual FeatureMotivation getFeatureMotivation() const override; // inherited from search::fef::IIndexEnvironment - virtual void hintFeatureMotivation(FeatureMotivation motivation) const; + virtual void hintFeatureMotivation(FeatureMotivation motivation) const override; // inherited from search::fef::IIndexEnvironment - virtual void hintFieldAccess(uint32_t fieldId) const; + virtual void hintFieldAccess(uint32_t fieldId) const override; // inherited from search::fef::IIndexEnvironment - virtual void hintAttributeAccess(const string &name) const; + virtual void hintAttributeAccess(const string &name) const override; + + virtual vespalib::eval::ConstantValue::UP getConstantValue(const vespalib::string &) const override { + return vespalib::eval::ConstantValue::UP(); + } virtual ~IndexEnvironment(); }; diff --git a/searchlib/src/vespa/searchlib/fef/iindexenvironment.h b/searchlib/src/vespa/searchlib/fef/iindexenvironment.h index c2f489abe3b..02071971eb3 100644 --- a/searchlib/src/vespa/searchlib/fef/iindexenvironment.h +++ b/searchlib/src/vespa/searchlib/fef/iindexenvironment.h @@ -4,6 +4,14 @@ #include <vespa/vespalib/stllike/string.h> +namespace vespalib { +namespace eval { + +class ConstantValue; + +} +} + namespace search { namespace fef { @@ -115,6 +123,11 @@ public: virtual void hintAttributeAccess(const string &name) const = 0; /** + * Returns a constant rank value with the given name or null ptr if no such value exists. + */ + virtual std::unique_ptr<vespalib::eval::ConstantValue> getConstantValue(const vespalib::string &name) const = 0; + + /** * Virtual destructor to allow safe subclassing. **/ virtual ~IIndexEnvironment() {} diff --git a/searchlib/src/vespa/searchlib/fef/test/indexenvironment.h b/searchlib/src/vespa/searchlib/fef/test/indexenvironment.h index aeb669be158..98a8349ebef 100644 --- a/searchlib/src/vespa/searchlib/fef/test/indexenvironment.h +++ b/searchlib/src/vespa/searchlib/fef/test/indexenvironment.h @@ -6,6 +6,7 @@ #include <vespa/searchlib/fef/properties.h> #include <vespa/searchlib/fef/fieldinfo.h> #include <vespa/searchlib/fef/tablemanager.h> +#include <vespa/vespalib/eval/value_cache/constant_value.h> #include <string> #include <vector> @@ -25,31 +26,31 @@ public: IndexEnvironment(); // Inherit doc from IIndexEnvironment. - virtual const Properties &getProperties() const { return _properties; } + virtual const Properties &getProperties() const override { return _properties; } // Inherit doc from IIndexEnvironment. - virtual uint32_t getNumFields() const { return _fields.size(); } + virtual uint32_t getNumFields() const override { return _fields.size(); } // Inherit doc from IIndexEnvironment. - virtual const FieldInfo *getField(uint32_t id) const; + virtual const FieldInfo *getField(uint32_t id) const override; // Inherit doc from IIndexEnvironment. - virtual const FieldInfo *getFieldByName(const string &name) const; + virtual const FieldInfo *getFieldByName(const string &name) const override; // Inherit doc from IIndexEnvironment. - virtual const ITableManager &getTableManager() const { return _tableMan; } + virtual const ITableManager &getTableManager() const override { return _tableMan; } // Inherit doc from IIndexEnvironment. virtual FeatureMotivation getFeatureMotivation() const override { return UNKNOWN; } // Inherit doc from IIndexEnvironment. - virtual void hintFeatureMotivation(FeatureMotivation) const {} + virtual void hintFeatureMotivation(FeatureMotivation) const override {} // Inherit doc from IIndexEnvironment. - virtual void hintFieldAccess(uint32_t) const {} + virtual void hintFieldAccess(uint32_t) const override {} // Inherit doc from IIndexEnvironment. - virtual void hintAttributeAccess(const string &) const {} + virtual void hintAttributeAccess(const string &) const override {} /** Returns a reference to the properties map of this. */ Properties &getProperties() { return _properties; } @@ -66,6 +67,10 @@ public: /** Returns a reference to the table manager of this. */ TableManager &getTableManager() { return _tableMan; } + virtual vespalib::eval::ConstantValue::UP getConstantValue(const vespalib::string &) const override { + return vespalib::eval::ConstantValue::UP(); + } + private: IndexEnvironment(const IndexEnvironment &); // hide IndexEnvironment & operator=(const IndexEnvironment &); // hide diff --git a/streamingvisitors/src/vespa/searchvisitor/indexenvironment.h b/streamingvisitors/src/vespa/searchvisitor/indexenvironment.h index 5eabf0525e8..469fe459cbe 100644 --- a/streamingvisitors/src/vespa/searchvisitor/indexenvironment.h +++ b/streamingvisitors/src/vespa/searchvisitor/indexenvironment.h @@ -7,6 +7,7 @@ #include <vespa/searchlib/fef/properties.h> #include <vespa/searchlib/fef/fieldinfo.h> #include <vespa/searchlib/fef/fieldtype.h> +#include <vespa/vespalib/eval/value_cache/constant_value.h> #include <vespa/vespalib/stllike/string.h> #include <vespa/vespalib/stllike/hash_map.h> #include <set> @@ -33,13 +34,13 @@ public: IndexEnvironment(const search::fef::ITableManager & tableManager); // inherit documentation - virtual const search::fef::Properties & getProperties() const { return _properties; } + virtual const search::fef::Properties & getProperties() const override { return _properties; } // inherit documentation - virtual uint32_t getNumFields() const { return _fields.size(); } + virtual uint32_t getNumFields() const override { return _fields.size(); } // inherit documentation - virtual const search::fef::FieldInfo * getField(uint32_t id) const { + virtual const search::fef::FieldInfo * getField(uint32_t id) const override { if (id >= _fields.size()) { return NULL; } @@ -47,7 +48,7 @@ public: } // inherit documentation - virtual const search::fef::FieldInfo * getFieldByName(const string & name) const { + virtual const search::fef::FieldInfo * getFieldByName(const string & name) const override { StringInt32Map::const_iterator itr = _fieldNames.find(name); if (itr == _fieldNames.end()) { return NULL; @@ -56,22 +57,22 @@ public: } // inherit documentation - virtual const search::fef::ITableManager & getTableManager() const { return *_tableManager; } + virtual const search::fef::ITableManager & getTableManager() const override { return *_tableManager; } virtual FeatureMotivation getFeatureMotivation() const override { return _motivation; } // inherit documentation - virtual void hintFeatureMotivation(FeatureMotivation motivation) const { + virtual void hintFeatureMotivation(FeatureMotivation motivation) const override { _motivation = motivation; } // inherit documentation - virtual void hintFieldAccess(uint32_t) const {} + virtual void hintFieldAccess(uint32_t) const override {} // inherit documentation - virtual void hintAttributeAccess(const string & name) const { + virtual void hintAttributeAccess(const string & name) const override { if (name.empty()) { return; } @@ -82,6 +83,10 @@ public: } } + virtual vespalib::eval::ConstantValue::UP getConstantValue(const vespalib::string &) const override { + return vespalib::eval::ConstantValue::UP(); + } + bool addField(const vespalib::string & name, bool isAttribute); search::fef::Properties & getProperties() { return _properties; } @@ -89,6 +94,7 @@ public: const std::set<vespalib::string> & getHintedRankAttributes() const { return _rankAttributes; } const std::set<vespalib::string> & getHintedDumpAttributes() const { return _dumpAttributes; } + }; } // namespace storage |