1
0
Fork 0

pass "isModificationQuery" around in cluster

This commit is contained in:
jsteemann 2018-05-27 22:41:08 +02:00
parent bc87837778
commit 56e03af4c4
3 changed files with 15 additions and 1 deletions

View File

@ -406,6 +406,7 @@ void ExecutionPlan::toVelocyPack(VPackBuilder& builder, Ast* ast,
builder.add("estimatedCost", VPackValue(_root->getCost(nrItems)));
builder.add("estimatedNrItems", VPackValue(nrItems));
builder.add("initialize", VPackValue(_isResponsibleForInitialize));
builder.add("isModificationQuery", VPackValue(ast->query()->isModificationQuery()));
builder.close();
}

View File

@ -199,6 +199,12 @@ Query::Query(
<< "options: " << options->slice().toJson();
}
// adjust the _isModificationQuery value from the slice we got
auto s = _queryBuilder->slice().get("isModificationQuery");
if (s.isBoolean()) {
_isModificationQuery = s.getBoolean();
}
_resourceMonitor.setMemoryLimit(_queryOptions.memoryLimit);
}
@ -236,6 +242,10 @@ Query* Query::clone(QueryPart part, bool withPlan) {
clone->_resourceMonitor = _resourceMonitor;
clone->_resourceMonitor.clear();
if (_isModificationQuery) {
clone->setIsModificationQuery();
}
if (_plan != nullptr) {
if (withPlan) {
// clone the existing plan

View File

@ -225,6 +225,9 @@ class Query {
/// @brief get the plan for the query
ExecutionPlan* plan() const { return _plan.get(); }
/// @brief whether or not a query is a modification query
bool isModificationQuery() const { return _isModificationQuery; }
/// @brief mark a query as modification query
void setIsModificationQuery() { _isModificationQuery = true; }
@ -398,4 +401,4 @@ class Query {
}
}
#endif
#endif