From 35380b03d1a71b617e58c494f00003c1bca65a1b Mon Sep 17 00:00:00 2001 From: James Date: Mon, 17 Nov 2014 13:09:57 +0000 Subject: [PATCH] compilation errors, still doesn't compile. --- arangod/Aql/OptimizerRules.cpp | 13 ++++++------- arangod/Aql/RangeInfo.cpp | 4 ++-- arangod/Aql/RangeInfo.h | 6 ++++-- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/arangod/Aql/OptimizerRules.cpp b/arangod/Aql/OptimizerRules.cpp index 0a9cc264ba..f94f0f2dee 100644 --- a/arangod/Aql/OptimizerRules.cpp +++ b/arangod/Aql/OptimizerRules.cpp @@ -872,7 +872,7 @@ class FilterToEnumCollFinder : public WalkerWorker { for (auto v : varsSetHere) { varsDefined.erase(v); } - pos = 0; + size_t pos = 0; do { for (auto& x : *map) { auto worker = [&] (std::list& bounds) -> void { @@ -935,7 +935,7 @@ class FilterToEnumCollFinder : public WalkerWorker { // note: prefixes are only used for skiplist indexes // for all other index types, the prefix value will always be 0 node->getIndexesForIndexRangeNode( - _rangeInfoMapVec->attributes(var->name, 0), idxs, prefixes); + _rangeInfoMapVec->attributes(var->name), idxs, prefixes); //TODO remove the 2nd arg from attribute in the line above // make one new plan for every index in that replaces the @@ -1083,8 +1083,7 @@ class FilterToEnumCollFinder : public WalkerWorker { } break; } - } - return false; + return false; } ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1146,7 +1145,7 @@ class FilterToEnumCollFinder : public WalkerWorker { == varsUsed.end()) { // Found a multiple attribute access of a variable and an // expression which does not involve that variable: - _rangeInfoMapVec->insertAND(enumCollVar->name, + _rangeInfoMapVec->insertAnd(enumCollVar->name, attr.substr(0, attr.size() - 1), RangeInfoBound(rhs, true), RangeInfoBound(rhs, true), true); @@ -1186,7 +1185,7 @@ class FilterToEnumCollFinder : public WalkerWorker { else { low.assign(lhs, include); } - _rangeInfoMapVec->insertAND(enumCollVar->name, + _rangeInfoMapVec->insertAnd(enumCollVar->name, attr.substr(0, attr.size() - 1), low, high, false); @@ -1212,7 +1211,7 @@ class FilterToEnumCollFinder : public WalkerWorker { else { high.assign(rhs, include); } - _rangeInfoMapVec->insertAND(enumCollVar->name, attr.substr(0, attr.size() - 1), + _rangeInfoMapVec->insertAnd(enumCollVar->name, attr.substr(0, attr.size() - 1), low, high, false); enumCollVar = nullptr; diff --git a/arangod/Aql/RangeInfo.cpp b/arangod/Aql/RangeInfo.cpp index e7367b8bdb..70f6050bde 100644 --- a/arangod/Aql/RangeInfo.cpp +++ b/arangod/Aql/RangeInfo.cpp @@ -370,10 +370,10 @@ void RangeInfoMap::eraseEmptyOrUndefined(std::string const& var) { // FIXME maybe this is unnecessary, it should be that the return value here is // independent of pos, i.e that every entry in the vec has the same attributes?? -std::unordered_set RangeInfoMapVec::attributes (std::string const& var, size_t pos) { +std::unordered_set RangeInfoMapVec::attributes (std::string const& var) { TRI_ASSERT(pos < _rangeInfoMapVec.size()); - return _rangeInfoMapVec[pos].attributes(var); + return _rangeInfoMapVec[0].attributes(var); } void RangeInfoMapVec::validPositions(std::string const& var) { diff --git a/arangod/Aql/RangeInfo.h b/arangod/Aql/RangeInfo.h index 791836254a..f2b356029b 100644 --- a/arangod/Aql/RangeInfo.h +++ b/arangod/Aql/RangeInfo.h @@ -649,7 +649,8 @@ namespace triagens { RangeInfoMap* clone (); RangeInfoMap* cloneExcluding (std::string const&); void eraseEmptyOrUndefined (std::string const&); - bool isValid (); + bool isValid (std::string const&); + std::unordered_set attributes (std::string const& var); //////////////////////////////////////////////////////////////////////////////// /// @brief private data @@ -722,8 +723,9 @@ namespace triagens { std::unordered_map* find (std::string const& var, size_t pos); - std::vector validPositions (); + std::vector validPositions (std::string const& var); // in what positions are the RangeInfoMaps in the vector valid + std::unordered_set attributes (std::string const& var); //////////////////////////////////////////////////////////////////////////////// /// @brief private data