mirror of https://gitee.com/bigwinds/arangodb
a bit less copying
This commit is contained in:
parent
57fa0e45a9
commit
24b44e474f
|
@ -654,18 +654,17 @@ RangeInfoMapVec* triagens::aql::orCombineRangeInfoMapVecs (RangeInfoMapVec* lhs,
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @brief andCombineRangeInfoMaps: insert every RangeInfo in the <rhs> in the
|
/// @brief andCombineRangeInfoMaps: insert every RangeInfo in the right argument
|
||||||
/// <lhs> and delete the <rhs>
|
/// in a new copy of the left argument
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
RangeInfoMap* triagens::aql::andCombineRangeInfoMaps (RangeInfoMap* lhs,
|
RangeInfoMap* triagens::aql::andCombineRangeInfoMaps (RangeInfoMap* lhs,
|
||||||
RangeInfoMap* rhs) {
|
RangeInfoMap const* rhs) {
|
||||||
for (auto const& x : rhs->_ranges) {
|
for (auto const& x : rhs->_ranges) {
|
||||||
for (auto const& y : x.second) {
|
for (auto const& y : x.second) {
|
||||||
lhs->insert(y.second.clone());
|
lhs->insert(y.second.clone());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delete rhs;
|
|
||||||
return lhs;
|
return lhs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -698,7 +697,7 @@ RangeInfoMapVec* triagens::aql::andCombineRangeInfoMapVecs (RangeInfoMapVec* lhs
|
||||||
std::unique_ptr<RangeInfoMapVec> rimv(new RangeInfoMapVec()); // must be a new one
|
std::unique_ptr<RangeInfoMapVec> rimv(new RangeInfoMapVec()); // must be a new one
|
||||||
for (size_t i = 0; i < lhs->size(); i++) {
|
for (size_t i = 0; i < lhs->size(); i++) {
|
||||||
for (size_t j = 0; j < rhs->size(); j++) {
|
for (size_t j = 0; j < rhs->size(); j++) {
|
||||||
rimv->emplace_back(std::move(andCombineRangeInfoMaps((*lhs)[i]->clone(), (*rhs)[j]->clone())));
|
rimv->emplace_back(andCombineRangeInfoMaps((*lhs)[i]->clone(), (*rhs)[j]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -863,8 +863,7 @@ namespace triagens {
|
||||||
/// can be private
|
/// can be private
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
std::unordered_map<std::string, std::unordered_map<std::string,
|
std::unordered_map<std::string, std::unordered_map<std::string, RangeInfo>> _ranges;
|
||||||
RangeInfo>> _ranges;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1029,7 +1028,8 @@ namespace triagens {
|
||||||
/// in a new copy of the left argument
|
/// in a new copy of the left argument
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
RangeInfoMap* andCombineRangeInfoMaps (RangeInfoMap*, RangeInfoMap*);
|
RangeInfoMap* andCombineRangeInfoMaps (RangeInfoMap*,
|
||||||
|
RangeInfoMap const*);
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @brief orCombineRangeInfoMapVecs: return a new RangeInfoMapVec appending
|
/// @brief orCombineRangeInfoMapVecs: return a new RangeInfoMapVec appending
|
||||||
|
@ -1039,7 +1039,8 @@ namespace triagens {
|
||||||
/// The return RIMV is new unless one of the arguments is empty.
|
/// The return RIMV is new unless one of the arguments is empty.
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
RangeInfoMapVec* orCombineRangeInfoMapVecs (RangeInfoMapVec*, RangeInfoMapVec*);
|
RangeInfoMapVec* orCombineRangeInfoMapVecs (RangeInfoMapVec*,
|
||||||
|
RangeInfoMapVec*);
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @brief andCombineRangeInfoMapVecs: return a new RangeInfoMapVec by
|
/// @brief andCombineRangeInfoMapVecs: return a new RangeInfoMapVec by
|
||||||
|
@ -1049,14 +1050,16 @@ namespace triagens {
|
||||||
/// The return RIMV is new unless one of the arguments is empty.
|
/// The return RIMV is new unless one of the arguments is empty.
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
RangeInfoMapVec* andCombineRangeInfoMapVecs (RangeInfoMapVec*, RangeInfoMapVec*);
|
RangeInfoMapVec* andCombineRangeInfoMapVecs (RangeInfoMapVec*,
|
||||||
|
RangeInfoMapVec*);
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @brief andCombineRangeInfoMapVecs: same as before, but will return the
|
/// @brief andCombineRangeInfoMapVecs: same as before, but will return the
|
||||||
/// mapvec even if one side is a nullptr
|
/// mapvec even if one side is a nullptr
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
RangeInfoMapVec* andCombineRangeInfoMapVecsIgnoreEmpty (RangeInfoMapVec*, RangeInfoMapVec*);
|
RangeInfoMapVec* andCombineRangeInfoMapVecsIgnoreEmpty (RangeInfoMapVec*,
|
||||||
|
RangeInfoMapVec*);
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @brief IndexOrCondition, type for vector of vector of RangeInfo. The meaning
|
/// @brief IndexOrCondition, type for vector of vector of RangeInfo. The meaning
|
||||||
|
|
Loading…
Reference in New Issue