diff --git a/arangod/Aql/AqlItemBlock.cpp b/arangod/Aql/AqlItemBlock.cpp index 6cbfa5d7ab..3648b267b7 100644 --- a/arangod/Aql/AqlItemBlock.cpp +++ b/arangod/Aql/AqlItemBlock.cpp @@ -503,7 +503,7 @@ AqlItemBlock* AqlItemBlock::concatenate (std::vector const& block /// such that actual indices start at 2 //////////////////////////////////////////////////////////////////////////////// -Json AqlItemBlock::toJson (AQL_TRANSACTION_V8* trx) const { +Json AqlItemBlock::toJson (triagens::arango::AqlTransaction* trx) const { Json json(Json::Array, 6); json("nrItems", Json(static_cast(_nrItems))) ("nrRegs", Json(static_cast(_nrRegs))); diff --git a/arangod/Aql/AqlItemBlock.h b/arangod/Aql/AqlItemBlock.h index 1a7a7d62af..4773e86654 100644 --- a/arangod/Aql/AqlItemBlock.h +++ b/arangod/Aql/AqlItemBlock.h @@ -292,7 +292,7 @@ namespace triagens { /// be used to recreate the AqlItemBlock via the Json constructor //////////////////////////////////////////////////////////////////////////////// - triagens::basics::Json toJson (AQL_TRANSACTION_V8* trx) const; + triagens::basics::Json toJson (triagens::arango::AqlTransaction* trx) const; // ----------------------------------------------------------------------------- // --SECTION-- private variables diff --git a/arangod/Aql/AqlValue.cpp b/arangod/Aql/AqlValue.cpp index afbf033060..b609b00bf9 100644 --- a/arangod/Aql/AqlValue.cpp +++ b/arangod/Aql/AqlValue.cpp @@ -399,7 +399,7 @@ char const* AqlValue::toChar () const { /// @brief construct a V8 value as input for the expression execution in V8 //////////////////////////////////////////////////////////////////////////////// -v8::Handle AqlValue::toV8 (AQL_TRANSACTION_V8* trx, +v8::Handle AqlValue::toV8 (triagens::arango::AqlTransaction* trx, TRI_document_collection_t const* document) const { switch (_type) { case JSON: { @@ -410,7 +410,7 @@ v8::Handle AqlValue::toV8 (AQL_TRANSACTION_V8* trx, case SHAPED: { TRI_ASSERT(document != nullptr); TRI_ASSERT(_marker != nullptr); - return TRI_WrapShapedJson(*trx, document->_info._cid, _marker); + return TRI_WrapShapedJson(*trx, document->_info._cid, _marker); } case DOCVEC: { @@ -465,7 +465,7 @@ v8::Handle AqlValue::toV8 (AQL_TRANSACTION_V8* trx, /// @brief toJson method //////////////////////////////////////////////////////////////////////////////// -Json AqlValue::toJson (AQL_TRANSACTION_V8* trx, +Json AqlValue::toJson (triagens::arango::AqlTransaction* trx, TRI_document_collection_t const* document) const { switch (_type) { case JSON: { @@ -562,7 +562,7 @@ Json AqlValue::toJson (AQL_TRANSACTION_V8* trx, /// this will return an empty Json if the value is not an array //////////////////////////////////////////////////////////////////////////////// -Json AqlValue::extractArrayMember (AQL_TRANSACTION_V8* trx, +Json AqlValue::extractArrayMember (triagens::arango::AqlTransaction* trx, TRI_document_collection_t const* document, char const* name) const { switch (_type) { @@ -652,7 +652,7 @@ Json AqlValue::extractArrayMember (AQL_TRANSACTION_V8* trx, /// this will return null if the value is not a list //////////////////////////////////////////////////////////////////////////////// -Json AqlValue::extractListMember (AQL_TRANSACTION_V8* trx, +Json AqlValue::extractListMember (triagens::arango::AqlTransaction* trx, TRI_document_collection_t const* document, int64_t position) const { switch (_type) { @@ -726,7 +726,7 @@ Json AqlValue::extractListMember (AQL_TRANSACTION_V8* trx, /// @brief create an AqlValue from a vector of AqlItemBlock*s //////////////////////////////////////////////////////////////////////////////// -AqlValue AqlValue::CreateFromBlocks (AQL_TRANSACTION_V8* trx, +AqlValue AqlValue::CreateFromBlocks (triagens::arango::AqlTransaction* trx, std::vector const& src, std::vector const& variableNames) { size_t totalSize = 0; @@ -762,7 +762,7 @@ AqlValue AqlValue::CreateFromBlocks (AQL_TRANSACTION_V8* trx, /// @brief 3-way comparison for AqlValue objects //////////////////////////////////////////////////////////////////////////////// -int AqlValue::Compare (AQL_TRANSACTION_V8* trx, +int AqlValue::Compare (triagens::arango::AqlTransaction* trx, AqlValue const& left, TRI_document_collection_t const* leftcoll, AqlValue const& right, diff --git a/arangod/Aql/AqlValue.h b/arangod/Aql/AqlValue.h index b932efa9f7..a96a237724 100644 --- a/arangod/Aql/AqlValue.h +++ b/arangod/Aql/AqlValue.h @@ -217,14 +217,14 @@ namespace triagens { /// @brief construct a V8 value as input for the expression execution in V8 //////////////////////////////////////////////////////////////////////////////// - v8::Handle toV8 (AQL_TRANSACTION_V8*, + v8::Handle toV8 (triagens::arango::AqlTransaction*, TRI_document_collection_t const*) const; //////////////////////////////////////////////////////////////////////////////// /// @brief toJson method //////////////////////////////////////////////////////////////////////////////// - triagens::basics::Json toJson (AQL_TRANSACTION_V8*, + triagens::basics::Json toJson (triagens::arango::AqlTransaction*, TRI_document_collection_t const*) const; //////////////////////////////////////////////////////////////////////////////// @@ -232,7 +232,7 @@ namespace triagens { /// this will return null if the value is not an array //////////////////////////////////////////////////////////////////////////////// - triagens::basics::Json extractArrayMember (AQL_TRANSACTION_V8*, + triagens::basics::Json extractArrayMember (triagens::arango::AqlTransaction*, TRI_document_collection_t const*, char const*) const; @@ -241,7 +241,7 @@ namespace triagens { /// this will return null if the value is not a list //////////////////////////////////////////////////////////////////////////////// - triagens::basics::Json extractListMember (AQL_TRANSACTION_V8*, + triagens::basics::Json extractListMember (triagens::arango::AqlTransaction*, TRI_document_collection_t const*, int64_t) const; @@ -249,7 +249,7 @@ namespace triagens { /// @brief create an AqlValue from a vector of AqlItemBlock*s //////////////////////////////////////////////////////////////////////////////// - static AqlValue CreateFromBlocks (AQL_TRANSACTION_V8*, + static AqlValue CreateFromBlocks (triagens::arango::AqlTransaction*, std::vector const&, std::vector const&); @@ -257,7 +257,7 @@ namespace triagens { /// @brief 3-way comparison for AqlValue objects //////////////////////////////////////////////////////////////////////////////// - static int Compare (AQL_TRANSACTION_V8*, + static int Compare (triagens::arango::AqlTransaction*, AqlValue const&, TRI_document_collection_t const*, AqlValue const&, diff --git a/arangod/Aql/ExecutionBlock.h b/arangod/Aql/ExecutionBlock.h index 41c778182b..22f15dc86d 100644 --- a/arangod/Aql/ExecutionBlock.h +++ b/arangod/Aql/ExecutionBlock.h @@ -304,7 +304,7 @@ namespace triagens { /// @brief the transaction for this query //////////////////////////////////////////////////////////////////////////////// - AQL_TRANSACTION_V8* _trx; + triagens::arango::AqlTransaction* _trx; //////////////////////////////////////////////////////////////////////////////// /// @brief our corresponding ExecutionNode node @@ -978,7 +978,7 @@ namespace triagens { class OurLessThan { public: - OurLessThan (AQL_TRANSACTION_V8* trx, + OurLessThan (triagens::arango::AqlTransaction* trx, std::deque& buffer, std::vector>& sortRegisters, std::vector& colls) @@ -992,7 +992,7 @@ namespace triagens { std::pair const& b); private: - AQL_TRANSACTION_V8* _trx; + triagens::arango::AqlTransaction* _trx; std::deque& _buffer; std::vector>& _sortRegisters; std::vector& _colls; @@ -1482,7 +1482,7 @@ namespace triagens { class OurLessThan { public: - OurLessThan (AQL_TRANSACTION_V8* trx, + OurLessThan (triagens::arango::AqlTransaction* trx, std::vector>& gatherBlockBuffer, std::vector>& sortRegisters, std::vector& colls) @@ -1496,7 +1496,7 @@ namespace triagens { std::pair const& b); private: - AQL_TRANSACTION_V8* _trx; + triagens::arango::AqlTransaction* _trx; std::vector>& _gatherBlockBuffer; std::vector>& _sortRegisters; std::vector& _colls; diff --git a/arangod/Aql/ExecutionEngine.cpp b/arangod/Aql/ExecutionEngine.cpp index 6b52db5ad1..bf121d583f 100644 --- a/arangod/Aql/ExecutionEngine.cpp +++ b/arangod/Aql/ExecutionEngine.cpp @@ -277,7 +277,7 @@ struct CoordinatorInstanciator : public WalkerWorker { std::vector nodes; }; - std::shared_ptr trx; + std::shared_ptr trx; Query* query; QueryRegistry* queryRegistry; ExecutionBlock* root; diff --git a/arangod/Aql/Expression.cpp b/arangod/Aql/Expression.cpp index edc9c81f3b..1c41616609 100644 --- a/arangod/Aql/Expression.cpp +++ b/arangod/Aql/Expression.cpp @@ -107,7 +107,7 @@ std::unordered_set Expression::variables () const { /// @brief execute the expression //////////////////////////////////////////////////////////////////////////////// -AqlValue Expression::execute (AQL_TRANSACTION_V8* trx, +AqlValue Expression::execute (triagens::arango::AqlTransaction* trx, std::vector& docColls, std::vector& argv, size_t startPos, @@ -213,7 +213,7 @@ void Expression::analyzeExpression () { AqlValue Expression::executeSimpleExpression (AstNode const* node, TRI_document_collection_t const** collection, - AQL_TRANSACTION_V8* trx, + triagens::arango::AqlTransaction* trx, std::vector& docColls, std::vector& argv, size_t startPos, diff --git a/arangod/Aql/Expression.h b/arangod/Aql/Expression.h index cefcf59255..2db658d08a 100644 --- a/arangod/Aql/Expression.h +++ b/arangod/Aql/Expression.h @@ -150,7 +150,7 @@ namespace triagens { /// @brief execute the expression //////////////////////////////////////////////////////////////////////////////// - AqlValue execute (AQL_TRANSACTION_V8* trx, + AqlValue execute (triagens::arango::AqlTransaction* trx, std::vector&, std::vector&, size_t, std::vector const&, @@ -219,7 +219,7 @@ namespace triagens { AqlValue executeSimpleExpression (AstNode const*, TRI_document_collection_t const**, - AQL_TRANSACTION_V8*, + triagens::arango::AqlTransaction*, std::vector&, std::vector&, size_t, std::vector const&, diff --git a/arangod/Aql/Functions.cpp b/arangod/Aql/Functions.cpp index 8f4df7afe8..f6bf556862 100644 --- a/arangod/Aql/Functions.cpp +++ b/arangod/Aql/Functions.cpp @@ -38,7 +38,7 @@ using Json = triagens::basics::Json; /// @brief function IS_NULL //////////////////////////////////////////////////////////////////////////////// -AqlValue Functions::IsNull (AQL_TRANSACTION_V8* trx, +AqlValue Functions::IsNull (triagens::arango::AqlTransaction* trx, TRI_document_collection_t const* collection, AqlValue const parameters) { Json j(parameters.extractListMember(trx, collection, 0)); @@ -49,7 +49,7 @@ AqlValue Functions::IsNull (AQL_TRANSACTION_V8* trx, /// @brief function IS_BOOL //////////////////////////////////////////////////////////////////////////////// -AqlValue Functions::IsBool (AQL_TRANSACTION_V8* trx, +AqlValue Functions::IsBool (triagens::arango::AqlTransaction* trx, TRI_document_collection_t const* collection, AqlValue const parameters) { Json j(parameters.extractListMember(trx, collection, 0)); @@ -60,7 +60,7 @@ AqlValue Functions::IsBool (AQL_TRANSACTION_V8* trx, /// @brief function IS_NUMBER //////////////////////////////////////////////////////////////////////////////// -AqlValue Functions::IsNumber (AQL_TRANSACTION_V8* trx, +AqlValue Functions::IsNumber (triagens::arango::AqlTransaction* trx, TRI_document_collection_t const* collection, AqlValue const parameters) { Json j(parameters.extractListMember(trx, collection, 0)); @@ -71,7 +71,7 @@ AqlValue Functions::IsNumber (AQL_TRANSACTION_V8* trx, /// @brief function IS_STRING //////////////////////////////////////////////////////////////////////////////// -AqlValue Functions::IsString (AQL_TRANSACTION_V8* trx, +AqlValue Functions::IsString (triagens::arango::AqlTransaction* trx, TRI_document_collection_t const* collection, AqlValue const parameters) { Json j(parameters.extractListMember(trx, collection, 0)); @@ -82,7 +82,7 @@ AqlValue Functions::IsString (AQL_TRANSACTION_V8* trx, /// @brief function IS_LIST //////////////////////////////////////////////////////////////////////////////// -AqlValue Functions::IsList (AQL_TRANSACTION_V8* trx, +AqlValue Functions::IsList (triagens::arango::AqlTransaction* trx, TRI_document_collection_t const* collection, AqlValue const parameters) { Json j(parameters.extractListMember(trx, collection, 0)); @@ -93,7 +93,7 @@ AqlValue Functions::IsList (AQL_TRANSACTION_V8* trx, /// @brief function IS_DOCUMENT //////////////////////////////////////////////////////////////////////////////// -AqlValue Functions::IsDocument (AQL_TRANSACTION_V8* trx, +AqlValue Functions::IsDocument (triagens::arango::AqlTransaction* trx, TRI_document_collection_t const* collection, AqlValue const parameters) { Json j(parameters.extractListMember(trx, collection, 0)); diff --git a/arangod/Aql/Functions.h b/arangod/Aql/Functions.h index 5f12a9c2ec..2e59267cc1 100644 --- a/arangod/Aql/Functions.h +++ b/arangod/Aql/Functions.h @@ -32,13 +32,14 @@ #include "Basics/Common.h" #include "Aql/AqlValue.h" +#include "Utils/AqlTransaction.h" #include namespace triagens { namespace aql { - typedef std::function FunctionImplementation; @@ -48,12 +49,12 @@ namespace triagens { /// @brief function IS_NULL //////////////////////////////////////////////////////////////////////////////// - static AqlValue IsNull (AQL_TRANSACTION_V8*, TRI_document_collection_t const*, AqlValue const); - static AqlValue IsBool (AQL_TRANSACTION_V8*, TRI_document_collection_t const*, AqlValue const); - static AqlValue IsNumber (AQL_TRANSACTION_V8*, TRI_document_collection_t const*, AqlValue const); - static AqlValue IsString (AQL_TRANSACTION_V8*, TRI_document_collection_t const*, AqlValue const); - static AqlValue IsList (AQL_TRANSACTION_V8*, TRI_document_collection_t const*, AqlValue const); - static AqlValue IsDocument (AQL_TRANSACTION_V8*, TRI_document_collection_t const*, AqlValue const); + static AqlValue IsNull (triagens::arango::AqlTransaction*, TRI_document_collection_t const*, AqlValue const); + static AqlValue IsBool (triagens::arango::AqlTransaction*, TRI_document_collection_t const*, AqlValue const); + static AqlValue IsNumber (triagens::arango::AqlTransaction*, TRI_document_collection_t const*, AqlValue const); + static AqlValue IsString (triagens::arango::AqlTransaction*, TRI_document_collection_t const*, AqlValue const); + static AqlValue IsList (triagens::arango::AqlTransaction*, TRI_document_collection_t const*, AqlValue const); + static AqlValue IsDocument (triagens::arango::AqlTransaction*, TRI_document_collection_t const*, AqlValue const); }; } diff --git a/arangod/Aql/Query.cpp b/arangod/Aql/Query.cpp index 13fe64c66f..0209e426d4 100644 --- a/arangod/Aql/Query.cpp +++ b/arangod/Aql/Query.cpp @@ -385,7 +385,7 @@ QueryResult Query::prepare (QueryRegistry* registry) { // std::cout << "AST: " << triagens::basics::JsonHelper::toString(parser->ast()->toJson(TRI_UNKNOWN_MEM_ZONE, false)) << "\n"; } - std::shared_ptr trx(new AQL_TRANSACTION_V8(new triagens::arango::V8TransactionContext(true), _vocbase, _collections.collections())); + std::shared_ptr trx(new triagens::arango::AqlTransaction(new triagens::arango::V8TransactionContext(true), _vocbase, _collections.collections())); _trx = trx; bool planRegisters; @@ -594,7 +594,7 @@ QueryResult Query::explain () { // std::cout << "AST: " << triagens::basics::JsonHelper::toString(parser.ast()->toJson(TRI_UNKNOWN_MEM_ZONE)) << "\n"; // create the transaction object, but do not start it yet - std::shared_ptr trx(new AQL_TRANSACTION_V8(new triagens::arango::V8TransactionContext(true), _vocbase, _collections.collections())); + std::shared_ptr trx(new triagens::arango::AqlTransaction(new triagens::arango::V8TransactionContext(true), _vocbase, _collections.collections())); _trx = trx; // we have an AST diff --git a/arangod/Aql/Query.h b/arangod/Aql/Query.h index 35c25fa3b0..a99e7e2db8 100644 --- a/arangod/Aql/Query.h +++ b/arangod/Aql/Query.h @@ -344,7 +344,7 @@ namespace triagens { /// @brief return the transaction, if prepared //////////////////////////////////////////////////////////////////////////////// - AQL_TRANSACTION_V8* trx () { + triagens::arango::AqlTransaction* trx () { return &*_trx; } @@ -352,12 +352,12 @@ namespace triagens { /// @brief set the transaction for the query //////////////////////////////////////////////////////////////////////////////// - void setTrxPtr (std::shared_ptr& trx) { + void setTrxPtr (std::shared_ptr& trx) { TRI_ASSERT(_trx == nullptr); _trx = trx; } - std::shared_ptr& getTrxPtr () { + std::shared_ptr& getTrxPtr () { return _trx; } //////////////////////////////////////////////////////////////////////////////// @@ -517,7 +517,7 @@ namespace triagens { /// to the HTTP API for queries. //////////////////////////////////////////////////////////////////////////////// - std::shared_ptr _trx; + std::shared_ptr _trx; //////////////////////////////////////////////////////////////////////////////// /// @brief the ExecutionEngine object, if the query is prepared diff --git a/arangod/Aql/V8Expression.cpp b/arangod/Aql/V8Expression.cpp index 1eb8374327..ac5b53520b 100644 --- a/arangod/Aql/V8Expression.cpp +++ b/arangod/Aql/V8Expression.cpp @@ -67,7 +67,7 @@ V8Expression::~V8Expression () { /// @brief execute the expression //////////////////////////////////////////////////////////////////////////////// -AqlValue V8Expression::execute (AQL_TRANSACTION_V8* trx, +AqlValue V8Expression::execute (triagens::arango::AqlTransaction* trx, std::vector& docColls, std::vector& argv, size_t startPos, diff --git a/arangod/Aql/V8Expression.h b/arangod/Aql/V8Expression.h index 8a06e4df44..6a70cf166e 100644 --- a/arangod/Aql/V8Expression.h +++ b/arangod/Aql/V8Expression.h @@ -71,7 +71,7 @@ namespace triagens { /// @brief execute the expression //////////////////////////////////////////////////////////////////////////////// - AqlValue execute (AQL_TRANSACTION_V8*, + AqlValue execute (triagens::arango::AqlTransaction*, std::vector&, std::vector&, size_t, diff --git a/arangod/Utils/AqlTransaction.h b/arangod/Utils/AqlTransaction.h index 4f697a0476..34d2bae177 100644 --- a/arangod/Utils/AqlTransaction.h +++ b/arangod/Utils/AqlTransaction.h @@ -41,8 +41,6 @@ #include "VocBase/vocbase.h" #include -#define AQL_TRANSACTION_V8 triagens::arango::AqlTransaction - namespace triagens { namespace arango {