refactor(query): opt perf by remove some functions.
This commit is contained in:
parent
d4e3a9cf2b
commit
299afd98d9
|
@ -116,6 +116,7 @@ typedef struct SHNode {
|
||||||
struct SHNode *next;
|
struct SHNode *next;
|
||||||
uint32_t keyLen : 20;
|
uint32_t keyLen : 20;
|
||||||
uint32_t dataLen : 12;
|
uint32_t dataLen : 12;
|
||||||
|
uint32_t hashVal;
|
||||||
char data[];
|
char data[];
|
||||||
} SHNode;
|
} SHNode;
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
|
@ -114,7 +114,8 @@ static void* doInternalAlloc(SSHashObj* pHashObj, int32_t size) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static SHNode *doCreateHashNode(SSHashObj* pHashObj, const void *key, size_t keyLen, const void *data, size_t dataLen) {
|
static SHNode *doCreateHashNode(SSHashObj *pHashObj, const void *key, size_t keyLen, const void *data, size_t dataLen,
|
||||||
|
uint32_t hashVal) {
|
||||||
SHNode *pNewNode = doInternalAlloc(pHashObj, sizeof(SHNode) + keyLen + dataLen);
|
SHNode *pNewNode = doInternalAlloc(pHashObj, sizeof(SHNode) + keyLen + dataLen);
|
||||||
if (!pNewNode) {
|
if (!pNewNode) {
|
||||||
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
terrno = TSDB_CODE_OUT_OF_MEMORY;
|
||||||
|
@ -124,6 +125,8 @@ static SHNode *doCreateHashNode(SSHashObj* pHashObj, const void *key, size_t key
|
||||||
pNewNode->keyLen = keyLen;
|
pNewNode->keyLen = keyLen;
|
||||||
pNewNode->dataLen = dataLen;
|
pNewNode->dataLen = dataLen;
|
||||||
pNewNode->next = NULL;
|
pNewNode->next = NULL;
|
||||||
|
pNewNode->hashVal = hashVal;
|
||||||
|
|
||||||
if (data) {
|
if (data) {
|
||||||
memcpy(GET_SHASH_NODE_DATA(pNewNode), data, dataLen);
|
memcpy(GET_SHASH_NODE_DATA(pNewNode), data, dataLen);
|
||||||
}
|
}
|
||||||
|
@ -167,10 +170,7 @@ static void tSimpleHashTableResize(SSHashObj *pHashObj) {
|
||||||
SHNode *pPrev = NULL;
|
SHNode *pPrev = NULL;
|
||||||
|
|
||||||
while (pNode != NULL) {
|
while (pNode != NULL) {
|
||||||
void *key = GET_SHASH_NODE_KEY(pNode, pNode->dataLen);
|
int32_t newIdx = HASH_INDEX(pNode->hashVal, pHashObj->capacity);
|
||||||
uint32_t hashVal = (*pHashObj->hashFp)(key, (uint32_t)pNode->keyLen);
|
|
||||||
|
|
||||||
int32_t newIdx = HASH_INDEX(hashVal, pHashObj->capacity);
|
|
||||||
pNext = pNode->next;
|
pNext = pNode->next;
|
||||||
if (newIdx != idx) {
|
if (newIdx != idx) {
|
||||||
if (!pPrev) {
|
if (!pPrev) {
|
||||||
|
@ -211,7 +211,7 @@ int32_t tSimpleHashPut(SSHashObj *pHashObj, const void *key, size_t keyLen, cons
|
||||||
|
|
||||||
SHNode *pNode = pHashObj->hashList[slot];
|
SHNode *pNode = pHashObj->hashList[slot];
|
||||||
if (!pNode) {
|
if (!pNode) {
|
||||||
SHNode *pNewNode = doCreateHashNode(pHashObj, key, keyLen, data, dataLen);
|
SHNode *pNewNode = doCreateHashNode(pHashObj, key, keyLen, data, dataLen, hashVal);
|
||||||
if (!pNewNode) {
|
if (!pNewNode) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -229,7 +229,7 @@ int32_t tSimpleHashPut(SSHashObj *pHashObj, const void *key, size_t keyLen, cons
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pNode) {
|
if (!pNode) {
|
||||||
SHNode *pNewNode = doCreateHashNode(pHashObj, key, keyLen, data, dataLen);
|
SHNode *pNewNode = doCreateHashNode(pHashObj, key, keyLen, data, dataLen, hashVal);
|
||||||
if (!pNewNode) {
|
if (!pNewNode) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue