mirror of https://gitee.com/bigwinds/arangodb
Revert "Do not copy TRI_doc_mptr_t."
This reverts commit ea1f82194dccdf212c9ef1f7ee8c5790b7e3c771. We need to copy such that we can release the collection lock earlier.
This commit is contained in:
parent
537160f2d5
commit
35e00a3a4d
|
@ -203,7 +203,7 @@ namespace triagens {
|
|||
/// @brief read documents within a transaction, using skip and limit
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
int read (vector<TRI_doc_mptr_t*>& docs,
|
||||
int read (vector<TRI_doc_mptr_t>& docs,
|
||||
TRI_barrier_t** barrier,
|
||||
TRI_voc_ssize_t skip,
|
||||
TRI_voc_size_t limit,
|
||||
|
@ -218,7 +218,7 @@ namespace triagens {
|
|||
/// access to the documents
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
int readOffset (vector<TRI_doc_mptr_t*>& docs,
|
||||
int readOffset (vector<TRI_doc_mptr_t>& docs,
|
||||
TRI_barrier_t** barrier,
|
||||
TRI_voc_size_t& internalSkip,
|
||||
TRI_voc_size_t batchSize,
|
||||
|
|
|
@ -630,7 +630,7 @@ namespace triagens {
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
int readSlice (TRI_transaction_collection_t* trxCollection,
|
||||
vector<TRI_doc_mptr_t*>& docs,
|
||||
vector<TRI_doc_mptr_t>& docs,
|
||||
TRI_barrier_t** barrier,
|
||||
TRI_voc_ssize_t skip,
|
||||
TRI_voc_size_t limit,
|
||||
|
@ -705,7 +705,7 @@ namespace triagens {
|
|||
if (*ptr) {
|
||||
TRI_doc_mptr_t* d = (TRI_doc_mptr_t*) *ptr;
|
||||
|
||||
docs.push_back(d);
|
||||
docs.push_back(*d);
|
||||
++count;
|
||||
}
|
||||
}
|
||||
|
@ -729,7 +729,7 @@ namespace triagens {
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
int readIncremental (TRI_transaction_collection_t* trxCollection,
|
||||
vector<TRI_doc_mptr_t*>& docs,
|
||||
vector<TRI_doc_mptr_t>& docs,
|
||||
TRI_barrier_t** barrier,
|
||||
TRI_voc_size_t& internalSkip,
|
||||
TRI_voc_size_t batchSize,
|
||||
|
@ -781,7 +781,7 @@ namespace triagens {
|
|||
--skip;
|
||||
}
|
||||
else {
|
||||
docs.push_back(d);
|
||||
docs.push_back(*d);
|
||||
++count;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1706,7 +1706,7 @@ static v8::Handle<v8::Value> JS_AllQuery (v8::Arguments const& argv) {
|
|||
|
||||
TRI_barrier_t* barrier = 0;
|
||||
uint32_t total = 0;
|
||||
vector<TRI_doc_mptr_t*> docs;
|
||||
vector<TRI_doc_mptr_t> docs;
|
||||
|
||||
CollectionNameResolver resolver(col->_vocbase);
|
||||
ReadTransactionType trx(col->_vocbase, resolver, col->_cid);
|
||||
|
@ -1739,7 +1739,7 @@ static v8::Handle<v8::Value> JS_AllQuery (v8::Arguments const& argv) {
|
|||
result->Set(v8::String::New("documents"), documents);
|
||||
|
||||
for (size_t i = 0; i < n; ++i) {
|
||||
v8::Handle<v8::Value> doc = WRAP_SHAPED_JSON(trx, col->_cid, docs[i], barrier, usedBarrier);
|
||||
v8::Handle<v8::Value> doc = WRAP_SHAPED_JSON(trx, col->_cid, &docs[i], barrier, usedBarrier);
|
||||
|
||||
if (doc.IsEmpty()) {
|
||||
TRI_V8_EXCEPTION_MEMORY(scope);
|
||||
|
@ -1791,7 +1791,7 @@ static v8::Handle<v8::Value> JS_OffsetQuery (v8::Arguments const& argv) {
|
|||
|
||||
TRI_barrier_t* barrier = 0;
|
||||
uint32_t total = 0;
|
||||
vector<TRI_doc_mptr_t*> docs;
|
||||
vector<TRI_doc_mptr_t> docs;
|
||||
|
||||
CollectionNameResolver resolver(col->_vocbase);
|
||||
ReadTransactionType trx(col->_vocbase, resolver, col->_cid);
|
||||
|
@ -1824,7 +1824,7 @@ static v8::Handle<v8::Value> JS_OffsetQuery (v8::Arguments const& argv) {
|
|||
result->Set(v8::String::New("documents"), documents);
|
||||
|
||||
for (size_t i = 0; i < n; ++i) {
|
||||
v8::Handle<v8::Value> document = WRAP_SHAPED_JSON(trx, col->_cid, docs[i], barrier, usedBarrier);
|
||||
v8::Handle<v8::Value> document = WRAP_SHAPED_JSON(trx, col->_cid, &docs[i], barrier, usedBarrier);
|
||||
|
||||
if (document.IsEmpty()) {
|
||||
TRI_V8_EXCEPTION_MEMORY(scope);
|
||||
|
|
Loading…
Reference in New Issue