refactor: do some internal refactor.
This commit is contained in:
parent
6a5ce7d663
commit
3897a91a95
|
@ -105,7 +105,7 @@ int32_t metaGetTableEntryByUid(SMetaReader *pReader, tb_uid_t uid);
|
||||||
int32_t metaGetTableEntryByUidCache(SMetaReader *pReader, tb_uid_t uid);
|
int32_t metaGetTableEntryByUidCache(SMetaReader *pReader, tb_uid_t uid);
|
||||||
int metaGetTableEntryByName(SMetaReader *pReader, const char *name);
|
int metaGetTableEntryByName(SMetaReader *pReader, const char *name);
|
||||||
int32_t metaGetTableTags(SMeta *pMeta, uint64_t suid, SArray *uidList, SHashObj *tags);
|
int32_t metaGetTableTags(SMeta *pMeta, uint64_t suid, SArray *uidList, SHashObj *tags);
|
||||||
int32_t metaGetTableTagsByUids(SMeta *pMeta, int64_t suid, SArray *uidList, SHashObj *tags);
|
int32_t metaGetTableTagsByUids(SMeta *pMeta, int64_t suid, SArray *uidList);
|
||||||
int32_t metaReadNext(SMetaReader *pReader);
|
int32_t metaReadNext(SMetaReader *pReader);
|
||||||
const void *metaGetTableTagVal(void *tag, int16_t type, STagVal *tagVal);
|
const void *metaGetTableTagVal(void *tag, int16_t type, STagVal *tagVal);
|
||||||
int metaGetTableNameByUid(void *meta, uint64_t uid, char *tbName);
|
int metaGetTableNameByUid(void *meta, uint64_t uid, char *tbName);
|
||||||
|
|
|
@ -1347,7 +1347,7 @@ static int32_t metaGetTableTagByUid(SMeta *pMeta, int64_t suid, int64_t uid, voi
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t metaGetTableTagsByUids(SMeta *pMeta, int64_t suid, SArray *uidList, SHashObj *tags) {
|
int32_t metaGetTableTagsByUids(SMeta *pMeta, int64_t suid, SArray *uidList) {
|
||||||
const int32_t LIMIT = 128;
|
const int32_t LIMIT = 128;
|
||||||
|
|
||||||
int32_t isLock = false;
|
int32_t isLock = false;
|
||||||
|
|
|
@ -419,8 +419,6 @@ static SColumnInfoData* getColInfoResult(void* metaHandle, int64_t suid, SArray*
|
||||||
SDataType type = {.type = TSDB_DATA_TYPE_BOOL, .bytes = sizeof(bool)};
|
SDataType type = {.type = TSDB_DATA_TYPE_BOOL, .bytes = sizeof(bool)};
|
||||||
|
|
||||||
// int64_t stt = taosGetTimestampUs();
|
// int64_t stt = taosGetTimestampUs();
|
||||||
// tags = taosHashInit(32, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BIGINT), false, HASH_NO_LOCK);
|
|
||||||
|
|
||||||
SArray* pRes = taosArrayInit(10, sizeof(SFilterTableInfo));
|
SArray* pRes = taosArrayInit(10, sizeof(SFilterTableInfo));
|
||||||
int32_t filter = optimizeTbnameInCond(metaHandle, suid, pRes, pTagCond, tags);
|
int32_t filter = optimizeTbnameInCond(metaHandle, suid, pRes, pTagCond, tags);
|
||||||
if (filter == 0) { // tbname in filter is activated, do nothing and return
|
if (filter == 0) { // tbname in filter is activated, do nothing and return
|
||||||
|
@ -444,7 +442,6 @@ static SColumnInfoData* getColInfoResult(void* metaHandle, int64_t suid, SArray*
|
||||||
terrno = 0;
|
terrno = 0;
|
||||||
goto end;
|
goto end;
|
||||||
} else {
|
} else {
|
||||||
// if (filter == -1) {
|
|
||||||
// here we retrieve all tags from the vnode table-meta store
|
// here we retrieve all tags from the vnode table-meta store
|
||||||
code = metaGetTableTags(metaHandle, suid, uidList, tags);
|
code = metaGetTableTags(metaHandle, suid, uidList, tags);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
@ -492,18 +489,11 @@ static SColumnInfoData* getColInfoResult(void* metaHandle, int64_t suid, SArray*
|
||||||
if (pColInfo->info.colId == -1) { // tbname
|
if (pColInfo->info.colId == -1) { // tbname
|
||||||
char str[TSDB_TABLE_FNAME_LEN + VARSTR_HEADER_SIZE] = {0};
|
char str[TSDB_TABLE_FNAME_LEN + VARSTR_HEADER_SIZE] = {0};
|
||||||
STR_TO_VARSTR(str, p1->name);
|
STR_TO_VARSTR(str, p1->name);
|
||||||
|
|
||||||
// metaGetTableNameByUid(metaHandle, *uid, str);
|
|
||||||
colDataAppend(pColInfo, i, str, false);
|
colDataAppend(pColInfo, i, str, false);
|
||||||
#if TAG_FILTER_DEBUG
|
#if TAG_FILTER_DEBUG
|
||||||
qDebug("tagfilter uid:%ld, tbname:%s", *uid, str + 2);
|
qDebug("tagfilter uid:%ld, tbname:%s", *uid, str + 2);
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
// void* pTagsVal = taosHashGet(tags, uid, sizeof(uint64_t));
|
|
||||||
// if (pTagsVal == NULL) {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
|
|
||||||
STagVal tagVal = {0};
|
STagVal tagVal = {0};
|
||||||
tagVal.cid = pColInfo->info.colId;
|
tagVal.cid = pColInfo->info.colId;
|
||||||
const char* p = metaGetTableTagVal(p1->pTagVal, pColInfo->info.type, &tagVal);
|
const char* p = metaGetTableTagVal(p1->pTagVal, pColInfo->info.type, &tagVal);
|
||||||
|
@ -879,17 +869,13 @@ static int32_t filterTableInfoCompare(const void* a, const void* b) {
|
||||||
|
|
||||||
static int32_t optimizeTbnameInCond(void* metaHandle, int64_t suid, SArray* pRes, SNode* cond, SHashObj* tags) {
|
static int32_t optimizeTbnameInCond(void* metaHandle, int64_t suid, SArray* pRes, SNode* cond, SHashObj* tags) {
|
||||||
int32_t ret = -1;
|
int32_t ret = -1;
|
||||||
if (nodeType(cond) == QUERY_NODE_OPERATOR) {
|
int32_t ntype = nodeType(cond);
|
||||||
|
|
||||||
|
if (ntype == QUERY_NODE_OPERATOR) {
|
||||||
ret = optimizeTbnameInCondImpl(metaHandle, pRes, cond);
|
ret = optimizeTbnameInCondImpl(metaHandle, pRes, cond);
|
||||||
if (ret == 0) {
|
|
||||||
// metaGetTableTagsByUids(metaHandle, suid, pRes, tags);
|
|
||||||
// removeInvalidUid(pRes, tags);
|
|
||||||
} else { // ret == -1
|
|
||||||
// do nothing
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nodeType(cond) != QUERY_NODE_LOGIC_CONDITION || ((SLogicConditionNode*)cond)->condType != LOGIC_COND_TYPE_AND) {
|
if (ntype != QUERY_NODE_LOGIC_CONDITION || ((SLogicConditionNode*)cond)->condType != LOGIC_COND_TYPE_AND) {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -916,7 +902,7 @@ static int32_t optimizeTbnameInCond(void* metaHandle, int64_t suid, SArray* pRes
|
||||||
taosArrayRemoveDuplicate(pRes, filterTableInfoCompare, NULL);
|
taosArrayRemoveDuplicate(pRes, filterTableInfoCompare, NULL);
|
||||||
|
|
||||||
if (hasTbnameCond) {
|
if (hasTbnameCond) {
|
||||||
ret = metaGetTableTagsByUids(metaHandle, suid, pRes, tags);
|
ret = metaGetTableTagsByUids(metaHandle, suid, pRes);
|
||||||
removeInvalidUid(pRes, tags);
|
removeInvalidUid(pRes, tags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue