mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel
This commit is contained in:
commit
f230fe0328
|
@ -2708,14 +2708,27 @@ static bool OpenIterator (TRI_df_marker_t const* marker,
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
static bool FillInternalIndexes (TRI_document_collection_t* document) {
|
static bool FillInternalIndexes (TRI_document_collection_t* document) {
|
||||||
|
TRI_primary_collection_t* primary;
|
||||||
size_t i;
|
size_t i;
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
|
primary = (TRI_primary_collection_t*) document;
|
||||||
|
|
||||||
res = TRI_ERROR_NO_ERROR;
|
res = TRI_ERROR_NO_ERROR;
|
||||||
|
|
||||||
for (i = 0; i < document->_allIndexes._length; ++i) {
|
for (i = 0; i < document->_allIndexes._length; ++i) {
|
||||||
TRI_index_t* idx = document->_allIndexes._buffer[i];
|
TRI_index_t* idx = document->_allIndexes._buffer[i];
|
||||||
|
|
||||||
|
if (idx->sizeHint != NULL) {
|
||||||
|
// give the index a size hint
|
||||||
|
int r = idx->sizeHint(idx, primary->_primaryIndex._nrUsed);
|
||||||
|
|
||||||
|
if (r != TRI_ERROR_NO_ERROR) {
|
||||||
|
// return first error, but continue
|
||||||
|
res = r;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (idx->_type == TRI_IDX_TYPE_EDGE_INDEX) {
|
if (idx->_type == TRI_IDX_TYPE_EDGE_INDEX) {
|
||||||
int r = FillIndex(document, idx);
|
int r = FillIndex(document, idx);
|
||||||
|
|
||||||
|
|
|
@ -93,6 +93,7 @@ void TRI_InitIndex (TRI_index_t* idx,
|
||||||
// init common functions
|
// init common functions
|
||||||
idx->removeIndex = NULL;
|
idx->removeIndex = NULL;
|
||||||
idx->cleanup = NULL;
|
idx->cleanup = NULL;
|
||||||
|
idx->sizeHint = NULL;
|
||||||
|
|
||||||
idx->postInsert = NULL;
|
idx->postInsert = NULL;
|
||||||
|
|
||||||
|
@ -898,6 +899,23 @@ static TRI_json_t* JsonEdge (TRI_index_t* idx) {
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief JSON description of edge index
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
static int SizeHintEdge (TRI_index_t* idx,
|
||||||
|
size_t size) {
|
||||||
|
|
||||||
|
TRI_multi_pointer_t* edgesIndex = &(((TRI_edge_index_t*) idx)->_edges);
|
||||||
|
|
||||||
|
// we assume this is called when setting up the index and the index is still empty
|
||||||
|
assert(edgesIndex->_nrUsed == 0);
|
||||||
|
|
||||||
|
// set an initial size for the index and allow for some new nodes to be created
|
||||||
|
// without resizing
|
||||||
|
return TRI_ResizeMultiPointer(edgesIndex, size + 2048);
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @}
|
/// @}
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -955,6 +973,8 @@ TRI_index_t* TRI_CreateEdgeIndex (struct TRI_primary_collection_s* primary,
|
||||||
idx->insert = InsertEdge;
|
idx->insert = InsertEdge;
|
||||||
idx->remove = RemoveEdge;
|
idx->remove = RemoveEdge;
|
||||||
|
|
||||||
|
idx->sizeHint = SizeHintEdge;
|
||||||
|
|
||||||
return idx;
|
return idx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -124,6 +124,9 @@ typedef struct TRI_index_s {
|
||||||
|
|
||||||
// a garbage collection function for the index
|
// a garbage collection function for the index
|
||||||
int (*cleanup) (struct TRI_index_s*);
|
int (*cleanup) (struct TRI_index_s*);
|
||||||
|
|
||||||
|
// give index a hint about the expected size
|
||||||
|
int (*sizeHint) (struct TRI_index_s*, size_t);
|
||||||
|
|
||||||
// .........................................................................................
|
// .........................................................................................
|
||||||
// the following functions are called by the query machinery which attempting to determine an
|
// the following functions are called by the query machinery which attempting to determine an
|
||||||
|
|
|
@ -2126,6 +2126,8 @@ int TRI_CreateCoordinatorDatabaseServer (TRI_server_t* server,
|
||||||
WRITE_UNLOCK_DATABASES(server->_databasesLock);
|
WRITE_UNLOCK_DATABASES(server->_databasesLock);
|
||||||
|
|
||||||
TRI_UnlockMutex(&server->_createLock);
|
TRI_UnlockMutex(&server->_createLock);
|
||||||
|
|
||||||
|
vocbase->_state = (sig_atomic_t) TRI_VOCBASE_STATE_NORMAL;
|
||||||
|
|
||||||
*database = vocbase;
|
*database = vocbase;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
div.content {
|
|
||||||
padding-top: 13px;
|
|
||||||
padding-left: 5px;
|
|
||||||
padding-right: 5px;
|
|
||||||
padding-bottom: 5px;
|
|
||||||
}
|
|
|
@ -23,7 +23,7 @@ gs = _.sortBy(gs, sortF);
|
||||||
<a class="arangoHeader">Graph Viewer Configuration</a>
|
<a class="arangoHeader">Graph Viewer Configuration</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="content">
|
<div class="contentDiv">
|
||||||
<form action="javascript:void(0);" autocomplete="on" class="form-horizontal" id="creationDialog">
|
<form action="javascript:void(0);" autocomplete="on" class="form-horizontal" id="creationDialog">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
|
|
|
@ -1,24 +1,21 @@
|
||||||
#loginWindow {
|
#loginWindow {
|
||||||
width: 400px;
|
|
||||||
height: 300px;
|
|
||||||
border: 1px solid #868686;
|
|
||||||
position: absolute;
|
|
||||||
left: 50%;
|
|
||||||
top: 50%;
|
|
||||||
margin-top: -150px;
|
|
||||||
margin-left: -220px !important;
|
|
||||||
background-color: #F4F4F4;
|
background-color: #F4F4F4;
|
||||||
|
border: 1px solid #868686;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
|
height: 300px;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -220px !important;
|
||||||
|
margin-top: -150px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
width: 400px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#loginLogo {
|
#loginLogo {
|
||||||
}
|
}
|
||||||
|
|
||||||
#loginWindow {
|
|
||||||
padding-left: 10px;
|
|
||||||
padding-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#loginSpace {
|
#loginSpace {
|
||||||
height: 50px;
|
height: 50px;
|
||||||
}
|
}
|
|
@ -27,3 +27,5 @@
|
||||||
@import 'searchBar';
|
@import 'searchBar';
|
||||||
// shortcuts info boxes
|
// shortcuts info boxes
|
||||||
@import 'shortcuts';
|
@import 'shortcuts';
|
||||||
|
// login view
|
||||||
|
//@import 'login';
|
||||||
|
|
|
@ -142,7 +142,6 @@
|
||||||
"frontend/css/swaggerView.css",
|
"frontend/css/swaggerView.css",
|
||||||
"frontend/css/foxxView.css",
|
"frontend/css/foxxView.css",
|
||||||
"frontend/css/graphView.css",
|
"frontend/css/graphView.css",
|
||||||
"frontend/css/loginView.css",
|
|
||||||
"frontend/css/dbSelectionView.css",
|
"frontend/css/dbSelectionView.css",
|
||||||
"frontend/css/jquery.snippet.css",
|
"frontend/css/jquery.snippet.css",
|
||||||
"frontend/css/modal.css",
|
"frontend/css/modal.css",
|
||||||
|
@ -150,7 +149,6 @@
|
||||||
"frontend/css/graphlayout.css",
|
"frontend/css/graphlayout.css",
|
||||||
"frontend/css/datatables.css",
|
"frontend/css/datatables.css",
|
||||||
"frontend/css/api.css",
|
"frontend/css/api.css",
|
||||||
"frontend/css/general.css",
|
|
||||||
"frontend/css/headerBar.css",
|
"frontend/css/headerBar.css",
|
||||||
"frontend/css/screenSizes.css",
|
"frontend/css/screenSizes.css",
|
||||||
"frontend/css/clusterDashboardView.css",
|
"frontend/css/clusterDashboardView.css",
|
||||||
|
|
|
@ -588,7 +588,8 @@ static void AddNewElementPointer (TRI_multi_pointer_t* array, void* element) {
|
||||||
/// @brief resizes the array
|
/// @brief resizes the array
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
static void ResizeMultiPointer (TRI_multi_pointer_t* array) {
|
static int ResizeMultiPointer (TRI_multi_pointer_t* array,
|
||||||
|
size_t targetSize) {
|
||||||
void** oldTable;
|
void** oldTable;
|
||||||
uint64_t oldAlloc;
|
uint64_t oldAlloc;
|
||||||
uint64_t j;
|
uint64_t j;
|
||||||
|
@ -596,7 +597,7 @@ static void ResizeMultiPointer (TRI_multi_pointer_t* array) {
|
||||||
oldTable = array->_table;
|
oldTable = array->_table;
|
||||||
oldAlloc = array->_nrAlloc;
|
oldAlloc = array->_nrAlloc;
|
||||||
|
|
||||||
array->_nrAlloc = 2 * array->_nrAlloc + 1;
|
array->_nrAlloc = (uint64_t) targetSize;
|
||||||
|
|
||||||
array->_table = TRI_Allocate(array->_memoryZone, array->_nrAlloc * sizeof(void*), true);
|
array->_table = TRI_Allocate(array->_memoryZone, array->_nrAlloc * sizeof(void*), true);
|
||||||
|
|
||||||
|
@ -604,7 +605,7 @@ static void ResizeMultiPointer (TRI_multi_pointer_t* array) {
|
||||||
array->_nrAlloc = oldAlloc;
|
array->_nrAlloc = oldAlloc;
|
||||||
array->_table = oldTable;
|
array->_table = oldTable;
|
||||||
|
|
||||||
return;
|
return TRI_ERROR_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
array->_nrUsed = 0;
|
array->_nrUsed = 0;
|
||||||
|
@ -619,7 +620,11 @@ static void ResizeMultiPointer (TRI_multi_pointer_t* array) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TRI_Free(array->_memoryZone, oldTable);
|
if (oldTable != NULL) {
|
||||||
|
TRI_Free(array->_memoryZone, oldTable);
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRI_ERROR_NO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -831,7 +836,7 @@ void* TRI_InsertElementMultiPointer (TRI_multi_pointer_t* array,
|
||||||
|
|
||||||
// if we were adding and the table is more than half full, extend it
|
// if we were adding and the table is more than half full, extend it
|
||||||
if (array->_nrAlloc < 2 * array->_nrUsed) {
|
if (array->_nrAlloc < 2 * array->_nrUsed) {
|
||||||
ResizeMultiPointer(array);
|
ResizeMultiPointer(array, 2 * array->_nrAlloc + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -892,6 +897,14 @@ void* TRI_RemoveElementMultiPointer (TRI_multi_pointer_t* array, void const* ele
|
||||||
return old;
|
return old;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief resize the array
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
int TRI_ResizeMultiPointer (TRI_multi_pointer_t* array, size_t size) {
|
||||||
|
return ResizeMultiPointer(array, 2 * size + 1);
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @}
|
/// @}
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -308,6 +308,12 @@ void* TRI_InsertElementMultiPointer (TRI_multi_pointer_t*,
|
||||||
|
|
||||||
void* TRI_RemoveElementMultiPointer (TRI_multi_pointer_t*, void const* element);
|
void* TRI_RemoveElementMultiPointer (TRI_multi_pointer_t*, void const* element);
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// @brief resize the array
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
int TRI_ResizeMultiPointer (TRI_multi_pointer_t*, size_t);
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
/// @}
|
/// @}
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
Loading…
Reference in New Issue