static uint64_t HashKeyPQIndex(TRI_associative_array_t* aa, void* key) { uint64_t hash; hash = TRI_FnvHashBlockInitial(); hash = TRI_FnvHashBlock(hash, key, sizeof(void*)); return hash; }
static uint64_t HashKey (TRI_hash_array_t* array, TRI_index_search_value_t* key) { uint64_t hash = TRI_FnvHashBlockInitial(); size_t j; for (j = 0; j < array->_numFields; ++j) { // ignore the sid for hashing hash = TRI_FnvHashBlock(hash, key->_values[j]._data.data, key->_values[j]._data.length); } return hash; }
static uint64_t HashElementPQIndex(TRI_associative_array_t* aa, void* item) { PQIndexElement* element; uint64_t hash; element = (PQIndexElement*)(item); if (element == 0) { return 0; } hash = TRI_FnvHashBlockInitial(); hash = TRI_FnvHashBlock(hash, element->data, sizeof(void*)); return hash; }
static uint64_t HashElementPQIndex(TRI_associative_array_t* aa, void* item) { TRI_pq_index_element_t* element; uint64_t hash; element = (TRI_pq_index_element_t*)(item); if (element == 0) { return 0; } hash = TRI_FnvHashBlockInitial(); hash = TRI_FnvHashBlock(hash, (void*) element->_document, sizeof(void*)); return hash; }
static uint64_t HashElement (TRI_hash_array_t* array, TRI_hash_index_element_t* element) { uint64_t hash = TRI_FnvHashBlockInitial(); char* ptr; size_t j; for (j = 0; j < array->_numFields; j++) { // ignore the sid for hashing ptr = ((char*) element->_document->_data) + element->_subObjects[j]._offset; // only hash the data block hash = TRI_FnvHashBlock(hash, ptr, element->_subObjects[j]._length); } return hash; }