Merge pull request #17263 from taosdata/feature/3_liaohj
refactor: do some internal refactor.
This commit is contained in:
commit
f0a7430238
|
@ -54,7 +54,7 @@ typedef struct SFuncExecFuncs {
|
||||||
FExecCombine combine;
|
FExecCombine combine;
|
||||||
} SFuncExecFuncs;
|
} SFuncExecFuncs;
|
||||||
|
|
||||||
#define MAX_INTERVAL_TIME_WINDOW 1000000 // maximum allowed time windows in final results
|
#define MAX_INTERVAL_TIME_WINDOW 10000000 // maximum allowed time windows in final results
|
||||||
|
|
||||||
#define TOP_BOTTOM_QUERY_LIMIT 100
|
#define TOP_BOTTOM_QUERY_LIMIT 100
|
||||||
#define FUNCTIONS_NAME_MAX_LENGTH 16
|
#define FUNCTIONS_NAME_MAX_LENGTH 16
|
||||||
|
|
|
@ -265,24 +265,43 @@ int32_t tLDataIterOpen(struct SLDataIter **pIter, SDataFReader *pReader, int32_t
|
||||||
|
|
||||||
// only apply to the child tables, ordinary tables will not incur this filter procedure.
|
// only apply to the child tables, ordinary tables will not incur this filter procedure.
|
||||||
size = taosArrayGetSize(pBlockLoadInfo->aSttBlk);
|
size = taosArrayGetSize(pBlockLoadInfo->aSttBlk);
|
||||||
SArray *pTmp = taosArrayInit(size, sizeof(SSttBlk));
|
|
||||||
for (int32_t i = 0; i < size; ++i) {
|
|
||||||
SSttBlk *p = taosArrayGet(pBlockLoadInfo->aSttBlk, i);
|
|
||||||
uint64_t s = p->suid;
|
|
||||||
if (s < suid) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (s == suid) {
|
if (size > 1) {
|
||||||
taosArrayPush(pTmp, p);
|
SSttBlk *pStart = taosArrayGet(pBlockLoadInfo->aSttBlk, 0);
|
||||||
} else if (s > suid) {
|
SSttBlk *pEnd = taosArrayGet(pBlockLoadInfo->aSttBlk, size - 1);
|
||||||
break;
|
|
||||||
|
// all identical
|
||||||
|
if (pStart->suid == pEnd->suid) {
|
||||||
|
if (pStart->suid == suid) {
|
||||||
|
// do nothing
|
||||||
|
} else if (pStart->suid != suid) {
|
||||||
|
// no qualified stt block existed
|
||||||
|
(*pIter)->iSttBlk = -1;
|
||||||
|
double el = (taosGetTimestampUs() - st)/1000.0;
|
||||||
|
tsdbDebug("load the last file info completed, elapsed time:%.2fms, %s", el, idStr);
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
SArray *pTmp = taosArrayInit(size, sizeof(SSttBlk));
|
||||||
|
for (int32_t i = 0; i < size; ++i) {
|
||||||
|
SSttBlk *p = taosArrayGet(pBlockLoadInfo->aSttBlk, i);
|
||||||
|
uint64_t s = p->suid;
|
||||||
|
if (s < suid) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (s == suid) {
|
||||||
|
taosArrayPush(pTmp, p);
|
||||||
|
} else if (s > suid) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
taosArrayDestroy(pBlockLoadInfo->aSttBlk);
|
||||||
|
pBlockLoadInfo->aSttBlk = pTmp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
taosArrayDestroy(pBlockLoadInfo->aSttBlk);
|
|
||||||
pBlockLoadInfo->aSttBlk = pTmp;
|
|
||||||
|
|
||||||
double el = (taosGetTimestampUs() - st)/1000.0;
|
double el = (taosGetTimestampUs() - st)/1000.0;
|
||||||
tsdbDebug("load the last file info completed, elapsed time:%.2fms, %s", el, idStr);
|
tsdbDebug("load the last file info completed, elapsed time:%.2fms, %s", el, idStr);
|
||||||
}
|
}
|
||||||
|
|
|
@ -662,7 +662,7 @@ static int32_t translateTopBot(SFunctionNode* pFunc, char* pErrBuf, int32_t len)
|
||||||
return invaildFuncParaTypeErrMsg(pErrBuf, len, pFunc->functionName);
|
return invaildFuncParaTypeErrMsg(pErrBuf, len, pFunc->functionName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pValue->datum.i < 1 || pValue->datum.i > 100) {
|
if (pValue->datum.i < 1 || pValue->datum.i > TOP_BOTTOM_QUERY_LIMIT) {
|
||||||
return invaildFuncParaValueErrMsg(pErrBuf, len, pFunc->functionName);
|
return invaildFuncParaValueErrMsg(pErrBuf, len, pFunc->functionName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue