1
0
Fork 0

Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel

This commit is contained in:
Heiko Kernbach 2013-05-22 12:16:02 +02:00
commit f4074c0fb4
2 changed files with 0 additions and 110 deletions

View File

@ -215,96 +215,6 @@ static bool EqualKeyCollectionName (TRI_associative_pointer_t* array, void const
/// @{
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/// @brief create a JSON array with collection meta data
///
/// this function is called when a collection is created or dropped
////////////////////////////////////////////////////////////////////////////////
static TRI_json_t* CreateJsonCollectionInfo (TRI_vocbase_col_t const* collection,
const char* situation) {
TRI_json_t* json;
TRI_json_t* details;
char* cidString;
details = TRI_CreateArrayJson(TRI_CORE_MEM_ZONE);
TRI_Insert3ArrayJson(TRI_CORE_MEM_ZONE, details, "type", TRI_CreateStringCopyJson(TRI_CORE_MEM_ZONE, TRI_TypeNameCollection(collection->_type)));
TRI_Insert3ArrayJson(TRI_CORE_MEM_ZONE, details, "name", TRI_CreateStringCopyJson(TRI_CORE_MEM_ZONE, collection->_name));
TRI_Insert3ArrayJson(TRI_CORE_MEM_ZONE, details, "action", TRI_CreateStringCopyJson(TRI_CORE_MEM_ZONE, situation));
cidString = TRI_StringUInt64((uint64_t) collection->_cid);
json = TRI_CreateArrayJson(TRI_CORE_MEM_ZONE);
TRI_Insert3ArrayJson(TRI_CORE_MEM_ZONE, json, "id", TRI_CreateStringCopyJson(TRI_CORE_MEM_ZONE, cidString));
TRI_Insert3ArrayJson(TRI_CORE_MEM_ZONE, json, "type", TRI_CreateStringCopyJson(TRI_CORE_MEM_ZONE, "collection"));
TRI_Insert3ArrayJson(TRI_CORE_MEM_ZONE, json, "details", details);
TRI_FreeString(TRI_CORE_MEM_ZONE, cidString);
return json;
}
////////////////////////////////////////////////////////////////////////////////
/// @brief insert the id of a collection into the "_ids" collection
////////////////////////////////////////////////////////////////////////////////
static int InsertIdCallback (TRI_transaction_collection_t* trxCollection,
void* data) {
TRI_shaped_json_t* shaped;
TRI_primary_collection_t* primary;
TRI_json_t* json;
TRI_doc_mptr_t mptr;
int res;
primary = (TRI_primary_collection_t*) trxCollection->_collection->_collection;
json = data;
shaped = TRI_ShapedJsonJson(primary->_shaper, json);
if (shaped == NULL) {
return TRI_ERROR_OUT_OF_MEMORY;
}
res = primary->insert(trxCollection, NULL, &mptr, TRI_DOC_MARKER_KEY_DOCUMENT, shaped, NULL, false, false);
TRI_FreeShapedJson(primary->_shaper, shaped);
return res;
}
////////////////////////////////////////////////////////////////////////////////
/// @brief save collection info on create or drop
///
/// the info will be stored permanently in the "_ids" collection, so we can
/// later reconstruct ids of collections that are/were dropped
////////////////////////////////////////////////////////////////////////////////
static bool WriteCollectionInfo (TRI_vocbase_t* vocbase,
TRI_vocbase_col_t const* collection,
const char* situation) {
TRI_json_t* json;
int res;
if (collection == NULL) {
return false;
}
json = CreateJsonCollectionInfo(collection, situation);
if (json == NULL) {
return false;
}
res = TRI_ExecuteSingleOperationTransaction(vocbase,
"_ids",
TRI_TRANSACTION_WRITE,
InsertIdCallback,
json);
TRI_FreeJson(TRI_CORE_MEM_ZONE, json);
return (res == TRI_ERROR_NO_ERROR);
}
////////////////////////////////////////////////////////////////////////////////
/// @brief returns the current tick value, without using a lock
////////////////////////////////////////////////////////////////////////////////
@ -456,8 +366,6 @@ static void FreeCollection (TRI_vocbase_t* vocbase, TRI_vocbase_col_t* collectio
////////////////////////////////////////////////////////////////////////////////
static bool UnregisterCollection (TRI_vocbase_t* vocbase, TRI_vocbase_col_t* collection) {
WriteCollectionInfo(vocbase, collection, "drop");
TRI_WRITE_LOCK_COLLECTIONS_VOCBASE(vocbase);
TRI_RemoveKeyAssociativePointer(&vocbase->_collectionsByName, collection->_name);

View File

@ -373,24 +373,6 @@
return true;
});
// set up the collection _ids
addTask("setupIds", "setup _ids collection", function () {
return createSystemCollection("_ids", { waitForSync : false });
});
// create a cap constraint for _ids
addTask("ensureIdsCap", "ensureCapConstraint for _ids collection", function () {
var ids = getCollection("_ids");
if (! ids) {
return false;
}
ids.ensureCapConstraint(50);
return true;
});
// set up the collection _trx
addTask("setupTrx", "setup _trx collection", function () {
return createSystemCollection("_trx", { waitForSync : false });