summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--searchcore/src/vespa/searchcore/proton/matching/indexenvironment.h21
-rw-r--r--searchlib/src/vespa/searchlib/fef/iindexenvironment.h13
-rw-r--r--searchlib/src/vespa/searchlib/fef/test/indexenvironment.h21
-rw-r--r--streamingvisitors/src/vespa/searchvisitor/indexenvironment.h22
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