summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--searchcommon/src/vespa/searchcommon/common/undefinedvalues.h6
-rw-r--r--searchlib/src/tests/grouping/grouping_test.cpp4
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp5
3 files changed, 8 insertions, 7 deletions
diff --git a/searchcommon/src/vespa/searchcommon/common/undefinedvalues.h b/searchcommon/src/vespa/searchcommon/common/undefinedvalues.h
index 478cc680ea0..3185cad34bd 100644
--- a/searchcommon/src/vespa/searchcommon/common/undefinedvalues.h
+++ b/searchcommon/src/vespa/searchcommon/common/undefinedvalues.h
@@ -11,17 +11,17 @@ namespace attribute {
// for all integers
template <typename T>
-T getUndefined() {
+constexpr T getUndefined() {
return std::numeric_limits<T>::min();
}
template <>
-inline float getUndefined<float>() {
+inline constexpr float getUndefined<float>() {
return -std::numeric_limits<float>::quiet_NaN();
}
template <>
-inline double getUndefined<double>() {
+inline constexpr double getUndefined<double>() {
return -std::numeric_limits<double>::quiet_NaN();
}
diff --git a/searchlib/src/tests/grouping/grouping_test.cpp b/searchlib/src/tests/grouping/grouping_test.cpp
index 084f13795f7..fea18619ef9 100644
--- a/searchlib/src/tests/grouping/grouping_test.cpp
+++ b/searchlib/src/tests/grouping/grouping_test.cpp
@@ -1930,10 +1930,10 @@ Test::testAttributeMapLookup()
ctx.add(StringAttrBuilder("key3").add("k3").add("k2").sp());
testAggregationSimple(ctx, SumAggregationResult(), Int64ResultNode(10 + undefinedInteger), "smap{\"k1\"}.weight");
testAggregationSimple(ctx, SumAggregationResult(), Int64ResultNode(20 + undefinedInteger), "smap{\"k2\"}.weight");
- testAggregationSimple(ctx, SumAggregationResult(), Int64ResultNode(2 * undefinedInteger), "smap{\"k5\"}.weight");
+ testAggregationSimple(ctx, SumAggregationResult(), Int64ResultNode(0), "smap{\"k5\"}.weight");
testAggregationSimple(ctx, SumAggregationResult(), Int64ResultNode(210), "smap{attribute(key1)}.weight");
testAggregationSimple(ctx, SumAggregationResult(), Int64ResultNode(120), "smap{attribute(key2)}.weight");
- testAggregationSimple(ctx, SumAggregationResult(), Int64ResultNode(2 * undefinedInteger), "smap{attribute(key3)}.weight");
+ testAggregationSimple(ctx, SumAggregationResult(), Int64ResultNode(0), "smap{attribute(key3)}.weight");
testAggregationSimple(ctx, MinAggregationResult(), Int64ResultNode(10), "smap{attribute(key1)}.weight");
testAggregationSimple(ctx, MinAggregationResult(), Int64ResultNode(20), "smap{attribute(key2)}.weight");
testAggregationSimple(ctx, MaxAggregationResult(), Int64ResultNode(200), "smap{attribute(key1)}.weight");
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp b/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp
index 6679c88e166..4e3540fb573 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp
@@ -3,6 +3,7 @@
#include "docsumwriter.h"
#include "docsumstate.h"
#include "docsum_field_writer_state.h"
+#include <vespa/searchcommon/common/undefinedvalues.h>
#include <vespa/searchlib/common/transport.h>
#include <vespa/searchlib/util/slime_output_raw_buf_adapter.h>
#include <vespa/searchlib/attribute/iattributemanager.h>
@@ -78,8 +79,8 @@ DynamicDocsumWriter::resolveInputClass(ResolveClassInfo &rci, uint32_t id) const
}
}
-constexpr uint32_t default_32bits_int = (uint32_t)std::numeric_limits<int32_t>::min();
-constexpr uint64_t default_64bits_int = (uint64_t)std::numeric_limits<int64_t>::min();
+constexpr uint32_t default_32bits_int = search::attribute::getUndefined<int32_t>();
+constexpr uint64_t default_64bits_int = search::attribute::getUndefined<int64_t>();
static void convertEntry(GetDocsumsState *state,
const ResConfigEntry *resCfg,