mirror of https://gitee.com/bigwinds/arangodb
bugfixes
This commit is contained in:
parent
0abd4c8835
commit
13980ef299
|
@ -44,7 +44,7 @@ class ExplicitTransaction : public Transaction {
|
||||||
ExplicitTransaction(std::shared_ptr<V8TransactionContext> transactionContext,
|
ExplicitTransaction(std::shared_ptr<V8TransactionContext> transactionContext,
|
||||||
std::vector<std::string> const& readCollections,
|
std::vector<std::string> const& readCollections,
|
||||||
std::vector<std::string> const& writeCollections,
|
std::vector<std::string> const& writeCollections,
|
||||||
double lockTimeout, bool waitForSync, bool embed,
|
double lockTimeout, bool waitForSync,
|
||||||
bool allowImplicitCollections)
|
bool allowImplicitCollections)
|
||||||
: Transaction(transactionContext, 0) {
|
: Transaction(transactionContext, 0) {
|
||||||
this->addHint(TRI_TRANSACTION_HINT_LOCK_ENTIRELY, false);
|
this->addHint(TRI_TRANSACTION_HINT_LOCK_ENTIRELY, false);
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
#ifndef ARANGOD_V8_SERVER_V8_TRAVERSER_H
|
#ifndef ARANGOD_V8_SERVER_V8_TRAVERSER_H
|
||||||
#define ARANGOD_V8_SERVER_V8_TRAVERSER_H 1
|
#define ARANGOD_V8_SERVER_V8_TRAVERSER_H 1
|
||||||
|
|
||||||
#include "Utils/ExplicitTransaction.h"
|
|
||||||
#include "VocBase/ExampleMatcher.h"
|
#include "VocBase/ExampleMatcher.h"
|
||||||
#include "VocBase/Traverser.h"
|
#include "VocBase/Traverser.h"
|
||||||
|
|
||||||
|
|
|
@ -28,21 +28,20 @@
|
||||||
#include "Aql/QueryList.h"
|
#include "Aql/QueryList.h"
|
||||||
#include "Aql/QueryRegistry.h"
|
#include "Aql/QueryRegistry.h"
|
||||||
#include "Basics/conversions.h"
|
#include "Basics/conversions.h"
|
||||||
#include "Basics/json-utilities.h"
|
|
||||||
#include "Basics/MutexLocker.h"
|
#include "Basics/MutexLocker.h"
|
||||||
#include "Basics/ScopeGuard.h"
|
#include "Basics/ScopeGuard.h"
|
||||||
#include "Basics/tri-strings.h"
|
#include "Basics/tri-strings.h"
|
||||||
#include "Basics/Utf8Helper.h"
|
#include "Basics/Utf8Helper.h"
|
||||||
#include "Cluster/AgencyComm.h"
|
|
||||||
#include "Cluster/ClusterComm.h"
|
#include "Cluster/ClusterComm.h"
|
||||||
#include "Cluster/ClusterInfo.h"
|
#include "Cluster/ClusterInfo.h"
|
||||||
#include "Cluster/ClusterMethods.h"
|
#include "Cluster/ClusterMethods.h"
|
||||||
#include "Cluster/ServerState.h"
|
#include "Cluster/ServerState.h"
|
||||||
#include "Indexes/Index.h"
|
|
||||||
#include "HttpServer/ApplicationEndpointServer.h"
|
#include "HttpServer/ApplicationEndpointServer.h"
|
||||||
#include "RestServer/ConsoleThread.h"
|
#include "RestServer/ConsoleThread.h"
|
||||||
#include "RestServer/VocbaseContext.h"
|
#include "RestServer/VocbaseContext.h"
|
||||||
#include "Rest/Version.h"
|
#include "Rest/Version.h"
|
||||||
|
#include "Utils/ExplicitTransaction.h"
|
||||||
|
#include "Utils/V8TransactionContext.h"
|
||||||
#include "V8/JSLoader.h"
|
#include "V8/JSLoader.h"
|
||||||
#include "V8/v8-conv.h"
|
#include "V8/v8-conv.h"
|
||||||
#include "V8/v8-utils.h"
|
#include "V8/v8-utils.h"
|
||||||
|
@ -339,11 +338,11 @@ static void JS_Transaction(v8::FunctionCallbackInfo<v8::Value> const& args) {
|
||||||
TRI_V8_THROW_EXCEPTION_PARAMETER(actionError);
|
TRI_V8_THROW_EXCEPTION_PARAMETER(actionError);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto transactionContext = std::make_shared<V8TransactionContext>(vocbase, false);
|
auto transactionContext = std::make_shared<V8TransactionContext>(vocbase, embed);
|
||||||
|
|
||||||
// start actual transaction
|
// start actual transaction
|
||||||
ExplicitTransaction trx(transactionContext, readCollections, writeCollections,
|
ExplicitTransaction trx(transactionContext, readCollections, writeCollections,
|
||||||
lockTimeout, waitForSync, embed,
|
lockTimeout, waitForSync,
|
||||||
allowImplicitCollections);
|
allowImplicitCollections);
|
||||||
|
|
||||||
int res = trx.begin();
|
int res = trx.begin();
|
||||||
|
@ -1756,13 +1755,12 @@ static ExplicitTransaction* BeginTransaction(
|
||||||
// IHHF isCoordinator
|
// IHHF isCoordinator
|
||||||
double lockTimeout =
|
double lockTimeout =
|
||||||
(double)(TRI_TRANSACTION_DEFAULT_LOCK_TIMEOUT / 1000000ULL);
|
(double)(TRI_TRANSACTION_DEFAULT_LOCK_TIMEOUT / 1000000ULL);
|
||||||
bool embed = true;
|
|
||||||
bool waitForSync = false;
|
bool waitForSync = false;
|
||||||
|
|
||||||
// Start Transaction to collect all parts of the path
|
// Start Transaction to collect all parts of the path
|
||||||
auto trx = std::make_unique<ExplicitTransaction>(
|
auto trx = std::make_unique<ExplicitTransaction>(
|
||||||
transactionContext, readCollections, writeCollections, lockTimeout, waitForSync,
|
transactionContext, readCollections, writeCollections, lockTimeout, waitForSync,
|
||||||
embed, true);
|
true);
|
||||||
|
|
||||||
int res = trx->begin();
|
int res = trx->begin();
|
||||||
if (res != TRI_ERROR_NO_ERROR) {
|
if (res != TRI_ERROR_NO_ERROR) {
|
||||||
|
|
Loading…
Reference in New Issue