mirror of https://gitee.com/bigwinds/arangodb
parent
9d2d113a17
commit
cb774beacf
|
@ -347,6 +347,33 @@ arangodb::traverser::TraverserOptions::TraverserOptions(
|
||||||
useBreadthFirst);
|
useBreadthFirst);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
arangodb::traverser::TraverserOptions::TraverserOptions(
|
||||||
|
TraverserOptions const& other)
|
||||||
|
: _trx(other._trx),
|
||||||
|
_baseVertexExpression(nullptr),
|
||||||
|
_tmpVar(nullptr),
|
||||||
|
_ctx(new aql::FixedVarExpressionContext()),
|
||||||
|
_isCoordinator(arangodb::ServerState::instance()->isCoordinator()),
|
||||||
|
minDepth(other.minDepth),
|
||||||
|
maxDepth(other.maxDepth),
|
||||||
|
useBreadthFirst(other.useBreadthFirst),
|
||||||
|
uniqueVertices(other.uniqueVertices),
|
||||||
|
uniqueEdges(other.uniqueEdges) {
|
||||||
|
TRI_ASSERT(other._baseLookupInfos.empty());
|
||||||
|
TRI_ASSERT(other._depthLookupInfo.empty());
|
||||||
|
TRI_ASSERT(other._vertexExpressions.empty());
|
||||||
|
TRI_ASSERT(other._tmpVar == nullptr);
|
||||||
|
TRI_ASSERT(other._baseVertexExpression == nullptr);
|
||||||
|
|
||||||
|
// Check for illegal option combination:
|
||||||
|
TRI_ASSERT(uniqueEdges !=
|
||||||
|
arangodb::traverser::TraverserOptions::UniquenessLevel::GLOBAL);
|
||||||
|
TRI_ASSERT(
|
||||||
|
uniqueVertices !=
|
||||||
|
arangodb::traverser::TraverserOptions::UniquenessLevel::GLOBAL ||
|
||||||
|
useBreadthFirst);
|
||||||
|
}
|
||||||
|
|
||||||
arangodb::traverser::TraverserOptions::~TraverserOptions() {
|
arangodb::traverser::TraverserOptions::~TraverserOptions() {
|
||||||
for (auto& pair : _vertexExpressions) {
|
for (auto& pair : _vertexExpressions) {
|
||||||
delete pair.second;
|
delete pair.second;
|
||||||
|
|
|
@ -135,6 +135,10 @@ struct TraverserOptions {
|
||||||
TraverserOptions(arangodb::aql::Query*, arangodb::velocypack::Slice,
|
TraverserOptions(arangodb::aql::Query*, arangodb::velocypack::Slice,
|
||||||
arangodb::velocypack::Slice);
|
arangodb::velocypack::Slice);
|
||||||
|
|
||||||
|
/// @brief This copy constructor is only working during planning phase.
|
||||||
|
/// After planning this node should not be copied anywhere.
|
||||||
|
TraverserOptions(TraverserOptions const&);
|
||||||
|
|
||||||
virtual ~TraverserOptions();
|
virtual ~TraverserOptions();
|
||||||
|
|
||||||
/// @brief Build a velocypack for cloning in the plan.
|
/// @brief Build a velocypack for cloning in the plan.
|
||||||
|
|
Loading…
Reference in New Issue