mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'spdvpk' of https://github.com/arangodb/arangodb into spdvpk
This commit is contained in:
commit
40682e9c45
|
@ -378,7 +378,6 @@ bool IndexBlock::readIndex(size_t atMost) {
|
||||||
bool isReverse = (static_cast<IndexNode const*>(getPlanNode()))->_reverse;
|
bool isReverse = (static_cast<IndexNode const*>(getPlanNode()))->_reverse;
|
||||||
bool isLastIndex = (_currentIndex == lastIndexNr && !isReverse) ||
|
bool isLastIndex = (_currentIndex == lastIndexNr && !isReverse) ||
|
||||||
(_currentIndex == 0 && isReverse);
|
(_currentIndex == 0 && isReverse);
|
||||||
auto _result = std::make_shared<OperationResult>(TRI_ERROR_NO_ERROR);
|
|
||||||
while (_cursor != nullptr) {
|
while (_cursor != nullptr) {
|
||||||
if (!_cursor->hasMore()) {
|
if (!_cursor->hasMore()) {
|
||||||
startNextCursor();
|
startNextCursor();
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
struct TRI_doc_mptr_t;
|
struct TRI_doc_mptr_t;
|
||||||
|
|
||||||
namespace arangodb {
|
namespace arangodb {
|
||||||
class OperationCursor;
|
struct OperationCursor;
|
||||||
|
|
||||||
namespace velocypack {
|
namespace velocypack {
|
||||||
class Slice;
|
class Slice;
|
||||||
|
|
|
@ -776,7 +776,7 @@ OperationResult Transaction::anyLocal(std::string const& collectionName,
|
||||||
indexScan(collectionName, Transaction::CursorType::ANY, "", {}, skip,
|
indexScan(collectionName, Transaction::CursorType::ANY, "", {}, skip,
|
||||||
limit, 1000, false);
|
limit, 1000, false);
|
||||||
|
|
||||||
auto result = std::make_shared<OperationResult>();
|
auto result = std::make_shared<OperationResult>(TRI_ERROR_NO_ERROR);
|
||||||
while (cursor->hasMore()) {
|
while (cursor->hasMore()) {
|
||||||
cursor->getMore(result);
|
cursor->getMore(result);
|
||||||
|
|
||||||
|
@ -2285,26 +2285,11 @@ std::shared_ptr<OperationCursor> Transaction::indexScan(
|
||||||
THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_BAD_PARAMETER,
|
THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_BAD_PARAMETER,
|
||||||
"The index id cannot be empty.");
|
"The index id cannot be empty.");
|
||||||
}
|
}
|
||||||
arangodb::Index* idx = nullptr;
|
arangodb::Index* idx = getIndexByIdentifier(collectionName, indexId);
|
||||||
|
|
||||||
if (!arangodb::Index::validateId(indexId.c_str())) {
|
|
||||||
THROW_ARANGO_EXCEPTION(TRI_ERROR_ARANGO_INDEX_HANDLE_BAD);
|
|
||||||
}
|
|
||||||
TRI_idx_iid_t iid = arangodb::basics::StringUtils::uint64(indexId);
|
|
||||||
idx = document->lookupIndex(iid);
|
|
||||||
|
|
||||||
if (idx == nullptr) {
|
|
||||||
THROW_ARANGO_EXCEPTION_MESSAGE(TRI_ERROR_ARANGO_INDEX_NOT_FOUND,
|
|
||||||
"Could not find index '" + indexId +
|
|
||||||
"' in collection '" +
|
|
||||||
collectionName + "'.");
|
|
||||||
}
|
|
||||||
|
|
||||||
// We have successfully found an index with the requested id.
|
|
||||||
|
|
||||||
// Normalize the search values
|
// Normalize the search values
|
||||||
VPackBuilder expander;
|
VPackBuilder expander;
|
||||||
idx->expandInSearchValues(search, expander);
|
idx->expandInSearchValues(search, expander);
|
||||||
|
LOG(INFO) << expander.slice().toJson();
|
||||||
|
|
||||||
// Now collect the Iterator
|
// Now collect the Iterator
|
||||||
IndexIteratorContext ctxt(_vocbase, resolver());
|
IndexIteratorContext ctxt(_vocbase, resolver());
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
namespace arangodb {
|
namespace arangodb {
|
||||||
|
|
||||||
namespace basics {
|
namespace basics {
|
||||||
class AttributeName;
|
struct AttributeName;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace velocypack {
|
namespace velocypack {
|
||||||
|
@ -50,9 +50,9 @@ class Index;
|
||||||
|
|
||||||
namespace aql {
|
namespace aql {
|
||||||
class Ast;
|
class Ast;
|
||||||
class AstNode;
|
struct AstNode;
|
||||||
class SortCondition;
|
class SortCondition;
|
||||||
class Variable;
|
struct Variable;
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
Loading…
Reference in New Issue