From 4aa24404b9bc3dedadd42c2f3961f02acfff08c0 Mon Sep 17 00:00:00 2001 From: Frank Celler Date: Fri, 23 Mar 2012 12:52:09 +0100 Subject: [PATCH] added rename --- V8/v8-vocbase.cpp | 1 + VocBase/collection.c | 23 +++++++++++++++++++++++ VocBase/vocbase.h | 6 ++++++ js/server/js-server.h | 1 - js/server/server.js | 1 - 5 files changed, 30 insertions(+), 2 deletions(-) diff --git a/V8/v8-vocbase.cpp b/V8/v8-vocbase.cpp index deb7b67461..e32658ee08 100644 --- a/V8/v8-vocbase.cpp +++ b/V8/v8-vocbase.cpp @@ -5323,6 +5323,7 @@ void TRI_InitV8VocBridge (v8::Handle context, TRI_vocbase_t* vocbas v8::Handle NextRefFuncName = v8::Persistent::New(v8::String::New("nextRef")); v8::Handle OutEdgesFuncName = v8::Persistent::New(v8::String::New("outEdges")); v8::Handle ParameterFuncName = v8::Persistent::New(v8::String::New("parameter")); + v8::Handle RenameFuncName = v8::Persistent::New(v8::String::New("rename")); v8::Handle PersistFuncName = v8::Persistent::New(v8::String::New("persist")); v8::Handle RenameFuncName = v8::Persistent::New(v8::String::New("rename")); v8::Handle ReplaceFuncName = v8::Persistent::New(v8::String::New("replace")); diff --git a/VocBase/collection.c b/VocBase/collection.c index 7ae9d55d32..fa3eef20aa 100644 --- a/VocBase/collection.c +++ b/VocBase/collection.c @@ -394,6 +394,29 @@ TRI_collection_t* TRI_CreateCollection (TRI_collection_t* collection, return NULL; } + // simple collection use the collection identifier + else if (parameter->_type == TRI_COL_TYPE_SIMPLE_DOCUMENT) { + tmp1 = TRI_StringUInt64(parameter->_cid); + tmp2 = TRI_Concatenate2String("collection-", tmp1); + + filename = TRI_Concatenate2File(path, tmp2); + + TRI_FreeString(tmp2); + TRI_FreeString(tmp1); + } + + // uups + else { + TRI_set_errno(TRI_ERROR_AVOCADO_UNKNOWN_COLLECTION_TYPE); + + LOG_ERROR("cannot create collection '%s' in '%s': unknown type '%d'", + parameter->_name, + path, + (unsigned int) parameter->_type); + + return NULL; + } + // directory must not exists if (TRI_ExistsFile(filename)) { TRI_set_errno(TRI_ERROR_AVOCADO_COLLECTION_DIRECTORY_ALREADY_EXISTS); diff --git a/VocBase/vocbase.h b/VocBase/vocbase.h index ab76deebf6..292a222e24 100644 --- a/VocBase/vocbase.h +++ b/VocBase/vocbase.h @@ -374,6 +374,12 @@ TRI_vocbase_col_t* TRI_UseCollectionByNameVocBase (TRI_vocbase_t* vocbase, char void TRI_ReleaseCollectionVocBase (TRI_vocbase_t* vocbase, TRI_vocbase_col_t* col); +//////////////////////////////////////////////////////////////////////////////// +/// @brief renames a (document) collection +//////////////////////////////////////////////////////////////////////////////// + +int TRI_RenameCollectionVocBase (TRI_vocbase_t* vocbase, TRI_vocbase_col_t* col, char const* name); + //////////////////////////////////////////////////////////////////////////////// /// @} //////////////////////////////////////////////////////////////////////////////// diff --git a/js/server/js-server.h b/js/server/js-server.h index 34de332e66..511909be95 100644 --- a/js/server/js-server.h +++ b/js/server/js-server.h @@ -212,7 +212,6 @@ static string JS_server_server = "////////////////////////////////////////////////////////////////////////////////\n" "\n" "AvocadoCollection.prototype._PRINT = function() {\n" - " var status = \"unknown\";\n" "\n" " switch (this.status()) {\n" " case AvocadoCollection.STATUS_NEW_BORN: status = \"new born\"; break;\n" diff --git a/js/server/server.js b/js/server/server.js index da731c331d..d0cd03afaa 100644 --- a/js/server/server.js +++ b/js/server/server.js @@ -211,7 +211,6 @@ AvocadoCollection.prototype.drop = function() { //////////////////////////////////////////////////////////////////////////////// AvocadoCollection.prototype._PRINT = function() { - var status = "unknown"; switch (this.status()) { case AvocadoCollection.STATUS_NEW_BORN: status = "new born"; break;