summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-03-31 11:38:15 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-03-31 11:38:15 +0200
commita7f53f8b235df31edff2d9ef6de371d7331751f2 (patch)
tree777e91df11da74e0998fdf306e31a6508798b0d3 /searchlib
parent89df687130376f8887ae2c0b49b6090148c519d0 (diff)
Must call setup aggregation references on all aggregators.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/aggregation/group.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/expression/aggregationrefnode.h6
2 files changed, 4 insertions, 4 deletions
diff --git a/searchlib/src/vespa/searchlib/aggregation/group.cpp b/searchlib/src/vespa/searchlib/aggregation/group.cpp
index cc8e362b05b..10bef66ea5b 100644
--- a/searchlib/src/vespa/searchlib/aggregation/group.cpp
+++ b/searchlib/src/vespa/searchlib/aggregation/group.cpp
@@ -575,13 +575,13 @@ Group::Value::deserialize(Deserializer & is) {
_aggregationResults[i] = tmpAggregationResults[i];
}
delete [] tmpAggregationResults;
- setupAggregationReferences();
assert(exprSize < 16);
setExprSize(exprSize);
for (uint32_t i(aggrSize); i < aggrSize + exprSize; i++) {
is >> _aggregationResults[i];
}
+ setupAggregationReferences();
is >> count;
destruct(_children, getAllChildrenSize());
_childInfo._allChildren = 0;
diff --git a/searchlib/src/vespa/searchlib/expression/aggregationrefnode.h b/searchlib/src/vespa/searchlib/expression/aggregationrefnode.h
index 03ee085c647..7029b3ff1c5 100644
--- a/searchlib/src/vespa/searchlib/expression/aggregationrefnode.h
+++ b/searchlib/src/vespa/searchlib/expression/aggregationrefnode.h
@@ -18,11 +18,11 @@ public:
public:
Configure(ExpressionNodeArray & exprVec) : _exprVec(exprVec) { }
private:
- virtual void execute(vespalib::Identifiable &obj) override { static_cast<AggregationRefNode&>(obj).locateExpression(_exprVec); }
- virtual bool check(const vespalib::Identifiable &obj) const override { return obj.inherits(AggregationRefNode::classId); }
+ void execute(vespalib::Identifiable &obj) override { static_cast<AggregationRefNode&>(obj).locateExpression(_exprVec); }
+ bool check(const vespalib::Identifiable &obj) const override { return obj.inherits(AggregationRefNode::classId); }
ExpressionNodeArray & _exprVec;
};
- virtual void visitMembers(vespalib::ObjectVisitor &visitor) const;
+ void visitMembers(vespalib::ObjectVisitor &visitor) const override;
DECLARE_EXPRESSIONNODE(AggregationRefNode);
AggregationRefNode() : _index(0), _expressionNode(NULL) { }