1
0
Fork 0

Activate finding of variable bounds.

This commit is contained in:
Max Neunhoeffer 2014-09-10 16:35:33 +02:00
parent 7b8cc04d90
commit c79b95b048
1 changed files with 6 additions and 12 deletions

View File

@ -586,8 +586,7 @@ class FilterToEnumCollFinder : public WalkerWorker<ExecutionNode> {
for (size_t j = 0; j < idx->_fields._length; j++) {
auto range = map->find(std::string(idx->_fields._buffer[j]));
if (! range->second.isConstant() ||
! range->second.is1ValueRangeInfo()) {
if (! range->second.is1ValueRangeInfo()) {
rangeInfo.at(0).clear(); // not usable
break;
}
@ -598,17 +597,12 @@ class FilterToEnumCollFinder : public WalkerWorker<ExecutionNode> {
if (idx->_type == TRI_IDX_TYPE_SKIPLIST_INDEX) {
size_t j = 0;
auto range = map->find(std::string(idx->_fields._buffer[0]));
if (range->second.isConstant()) {
rangeInfo.at(0).push_back(range->second);
bool equality = range->second.is1ValueRangeInfo();
while (++j < prefixes.at(i) && equality) {
range = map->find(std::string(idx->_fields._buffer[j]));
rangeInfo.at(0).push_back(range->second);
bool equality = range->second.is1ValueRangeInfo();
while (++j < prefixes.at(i) && equality) {
range = map->find(std::string(idx->_fields._buffer[j]));
if (! range->second.isConstant()) {
break;
}
rangeInfo.at(0).push_back(range->second);
equality = equality && range->second.is1ValueRangeInfo();
}
equality = equality && range->second.is1ValueRangeInfo();
}
}