[td-32] refactor codes
This commit is contained in:
parent
74b546108c
commit
09962c0039
|
@ -5469,34 +5469,60 @@ static int32_t validateQueryMeterMsg(SQueryTableMsg *pQueryTableMsg) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t convertQueryTableMsg(SQueryTableMsg *pQueryTableMsg, SArray **pTableIdList) {
|
static char* createTableIdList(SQueryTableMsg* pQueryTableMsg, char* pMsg, SArray** pTableIdList) {
|
||||||
pQueryTableMsg->vgId = htons(pQueryTableMsg->vgId);
|
assert(pQueryTableMsg->numOfTables > 0);
|
||||||
pQueryTableMsg->numOfTables = htonl(pQueryTableMsg->numOfTables);
|
|
||||||
|
|
||||||
pQueryTableMsg->window.skey = htobe64(pQueryTableMsg->window.skey);
|
*pTableIdList = taosArrayInit(pQueryTableMsg->numOfTables, sizeof(STableIdInfo));
|
||||||
pQueryTableMsg->window.ekey = htobe64(pQueryTableMsg->window.ekey);
|
|
||||||
|
|
||||||
pQueryTableMsg->order = htons(pQueryTableMsg->order);
|
STableIdInfo *pTableIdInfo = (STableIdInfo *)pMsg;
|
||||||
pQueryTableMsg->orderColId = htons(pQueryTableMsg->orderColId);
|
pTableIdInfo->sid = htonl(pTableIdInfo->sid);
|
||||||
|
pTableIdInfo->uid = htobe64(pTableIdInfo->uid);
|
||||||
|
pTableIdInfo->key = htobe64(pTableIdInfo->key);
|
||||||
|
|
||||||
pQueryTableMsg->queryType = htons(pQueryTableMsg->queryType);
|
taosArrayPush(*pTableIdList, pTableIdInfo);
|
||||||
|
pMsg += sizeof(STableIdInfo);
|
||||||
|
|
||||||
pQueryTableMsg->intervalTime = htobe64(pQueryTableMsg->intervalTime);
|
for (int32_t j = 1; j < pQueryTableMsg->numOfTables; ++j) {
|
||||||
pQueryTableMsg->slidingTime = htobe64(pQueryTableMsg->slidingTime);
|
pTableIdInfo = (STableIdInfo *)pMsg;
|
||||||
|
|
||||||
|
pTableIdInfo->sid = htonl(pTableIdInfo->sid);
|
||||||
|
pTableIdInfo->uid = htobe64(pTableIdInfo->uid);
|
||||||
|
pTableIdInfo->key = htobe64(pTableIdInfo->key);
|
||||||
|
|
||||||
|
taosArrayPush(*pTableIdList, pTableIdInfo);
|
||||||
|
pMsg += sizeof(STableIdInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
return pMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int32_t convertQueryMsg(SQueryTableMsg *pQueryTableMsg, SArray **pTableIdList) {
|
||||||
|
pQueryTableMsg->vgId = htons(pQueryTableMsg->vgId);
|
||||||
|
pQueryTableMsg->numOfTables = htonl(pQueryTableMsg->numOfTables);
|
||||||
|
|
||||||
|
pQueryTableMsg->window.skey = htobe64(pQueryTableMsg->window.skey);
|
||||||
|
pQueryTableMsg->window.ekey = htobe64(pQueryTableMsg->window.ekey);
|
||||||
|
pQueryTableMsg->intervalTime = htobe64(pQueryTableMsg->intervalTime);
|
||||||
|
pQueryTableMsg->slidingTime = htobe64(pQueryTableMsg->slidingTime);
|
||||||
|
|
||||||
|
pQueryTableMsg->limit = htobe64(pQueryTableMsg->limit);
|
||||||
|
pQueryTableMsg->offset = htobe64(pQueryTableMsg->offset);
|
||||||
|
|
||||||
|
pQueryTableMsg->order = htons(pQueryTableMsg->order);
|
||||||
|
pQueryTableMsg->orderColId = htons(pQueryTableMsg->orderColId);
|
||||||
|
|
||||||
|
pQueryTableMsg->queryType = htons(pQueryTableMsg->queryType);
|
||||||
|
|
||||||
pQueryTableMsg->numOfTagsCols = htons(pQueryTableMsg->numOfTagsCols);
|
pQueryTableMsg->numOfTagsCols = htons(pQueryTableMsg->numOfTagsCols);
|
||||||
pQueryTableMsg->numOfCols = htons(pQueryTableMsg->numOfCols);
|
pQueryTableMsg->numOfCols = htons(pQueryTableMsg->numOfCols);
|
||||||
pQueryTableMsg->numOfOutputCols = htons(pQueryTableMsg->numOfOutputCols);
|
pQueryTableMsg->numOfOutputCols = htons(pQueryTableMsg->numOfOutputCols);
|
||||||
pQueryTableMsg->numOfGroupCols = htons(pQueryTableMsg->numOfGroupCols);
|
pQueryTableMsg->numOfGroupCols = htons(pQueryTableMsg->numOfGroupCols);
|
||||||
pQueryTableMsg->tagLength = htons(pQueryTableMsg->tagLength);
|
pQueryTableMsg->tagLength = htons(pQueryTableMsg->tagLength);
|
||||||
|
|
||||||
pQueryTableMsg->limit = htobe64(pQueryTableMsg->limit);
|
pQueryTableMsg->tsOffset = htonl(pQueryTableMsg->tsOffset);
|
||||||
pQueryTableMsg->offset = htobe64(pQueryTableMsg->offset);
|
pQueryTableMsg->tsLen = htonl(pQueryTableMsg->tsLen);
|
||||||
|
|
||||||
pQueryTableMsg->tsOffset = htonl(pQueryTableMsg->tsOffset);
|
|
||||||
pQueryTableMsg->tsLen = htonl(pQueryTableMsg->tsLen);
|
|
||||||
pQueryTableMsg->tsNumOfBlocks = htonl(pQueryTableMsg->tsNumOfBlocks);
|
pQueryTableMsg->tsNumOfBlocks = htonl(pQueryTableMsg->tsNumOfBlocks);
|
||||||
pQueryTableMsg->tsOrder = htonl(pQueryTableMsg->tsOrder);
|
pQueryTableMsg->tsOrder = htonl(pQueryTableMsg->tsOrder);
|
||||||
|
|
||||||
// query msg safety check
|
// query msg safety check
|
||||||
if (validateQueryMeterMsg(pQueryTableMsg) != 0) {
|
if (validateQueryMeterMsg(pQueryTableMsg) != 0) {
|
||||||
|
@ -5506,23 +5532,23 @@ static int32_t convertQueryTableMsg(SQueryTableMsg *pQueryTableMsg, SArray **pTa
|
||||||
char *pMsg = (char *)(pQueryTableMsg->colList) + sizeof(SColumnInfo) * pQueryTableMsg->numOfCols;
|
char *pMsg = (char *)(pQueryTableMsg->colList) + sizeof(SColumnInfo) * pQueryTableMsg->numOfCols;
|
||||||
|
|
||||||
for (int32_t col = 0; col < pQueryTableMsg->numOfCols; ++col) {
|
for (int32_t col = 0; col < pQueryTableMsg->numOfCols; ++col) {
|
||||||
pQueryTableMsg->colList[col].colId = htons(pQueryTableMsg->colList[col].colId);
|
SColumnInfo* pColInfo = &pQueryTableMsg->colList[col];
|
||||||
pQueryTableMsg->colList[col].type = htons(pQueryTableMsg->colList[col].type);
|
|
||||||
pQueryTableMsg->colList[col].bytes = htons(pQueryTableMsg->colList[col].bytes);
|
|
||||||
pQueryTableMsg->colList[col].numOfFilters = htons(pQueryTableMsg->colList[col].numOfFilters);
|
|
||||||
|
|
||||||
assert(pQueryTableMsg->colList[col].type >= TSDB_DATA_TYPE_BOOL &&
|
pColInfo->colId = htons(pColInfo->colId);
|
||||||
pQueryTableMsg->colList[col].type <= TSDB_DATA_TYPE_NCHAR);
|
pColInfo->type = htons(pColInfo->type);
|
||||||
|
pColInfo->bytes = htons(pColInfo->bytes);
|
||||||
|
pColInfo->numOfFilters = htons(pColInfo->numOfFilters);
|
||||||
|
|
||||||
int32_t numOfFilters = pQueryTableMsg->colList[col].numOfFilters;
|
assert(pColInfo->type >= TSDB_DATA_TYPE_BOOL && pColInfo->type <= TSDB_DATA_TYPE_NCHAR);
|
||||||
|
|
||||||
|
int32_t numOfFilters = pColInfo->numOfFilters;
|
||||||
if (numOfFilters > 0) {
|
if (numOfFilters > 0) {
|
||||||
pQueryTableMsg->colList[col].filters = calloc(numOfFilters, sizeof(SColumnFilterInfo));
|
pColInfo->filters = calloc(numOfFilters, sizeof(SColumnFilterInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int32_t f = 0; f < numOfFilters; ++f) {
|
for (int32_t f = 0; f < numOfFilters; ++f) {
|
||||||
SColumnFilterInfo *pFilterInfo = (SColumnFilterInfo *)pMsg;
|
SColumnFilterInfo *pFilterInfo = (SColumnFilterInfo *)pMsg;
|
||||||
SColumnFilterInfo *pDestFilterInfo = &pQueryTableMsg->colList[col].filters[f];
|
SColumnFilterInfo *pDestFilterInfo = &pColInfo->filters[f];
|
||||||
|
|
||||||
pDestFilterInfo->filterOnBinary = htons(pFilterInfo->filterOnBinary);
|
pDestFilterInfo->filterOnBinary = htons(pFilterInfo->filterOnBinary);
|
||||||
|
|
||||||
|
@ -5600,26 +5626,7 @@ static int32_t convertQueryTableMsg(SQueryTableMsg *pQueryTableMsg, SArray **pTa
|
||||||
pMsg += pQueryTableMsg->colNameLen;
|
pMsg += pQueryTableMsg->colNameLen;
|
||||||
}
|
}
|
||||||
|
|
||||||
*pTableIdList = taosArrayInit(pQueryTableMsg->numOfTables, sizeof(STableIdInfo));
|
pMsg = createTableIdList(pQueryTableMsg, pMsg, pTableIdList);
|
||||||
|
|
||||||
STableIdInfo *pTableIdInfo = (STableIdInfo *)pMsg;
|
|
||||||
pTableIdInfo->sid = htonl(pTableIdInfo->sid);
|
|
||||||
pTableIdInfo->uid = htobe64(pTableIdInfo->uid);
|
|
||||||
pTableIdInfo->key = htobe64(pTableIdInfo->key);
|
|
||||||
|
|
||||||
taosArrayPush(*pTableIdList, pTableIdInfo);
|
|
||||||
pMsg += sizeof(STableIdInfo);
|
|
||||||
|
|
||||||
for (int32_t j = 1; j < pQueryTableMsg->numOfTables; ++j) {
|
|
||||||
pTableIdInfo = (STableIdInfo *)pMsg;
|
|
||||||
|
|
||||||
pTableIdInfo->sid = htonl(pTableIdInfo->sid);
|
|
||||||
pTableIdInfo->uid = htobe64(pTableIdInfo->uid);
|
|
||||||
pTableIdInfo->key = htobe64(pTableIdInfo->key);
|
|
||||||
|
|
||||||
taosArrayPush(*pTableIdList, pTableIdInfo);
|
|
||||||
pMsg += sizeof(STableIdInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pQueryTableMsg->numOfGroupCols > 0 || pQueryTableMsg->numOfTagsCols > 0) { // group by tag columns
|
if (pQueryTableMsg->numOfGroupCols > 0 || pQueryTableMsg->numOfTagsCols > 0) { // group by tag columns
|
||||||
pQueryTableMsg->pTagSchema = (uint64_t)pMsg;
|
pQueryTableMsg->pTagSchema = (uint64_t)pMsg;
|
||||||
|
@ -5653,9 +5660,7 @@ static int32_t convertQueryTableMsg(SQueryTableMsg *pQueryTableMsg, SArray **pTa
|
||||||
dTrace("qmsg:%p query on %d meter(s), qrange:%" PRId64 "-%" PRId64
|
dTrace("qmsg:%p query on %d meter(s), qrange:%" PRId64 "-%" PRId64
|
||||||
", numOfGroupbyTagCols:%d, numOfTagCols:%d, timestamp order:%d, "
|
", numOfGroupbyTagCols:%d, numOfTagCols:%d, timestamp order:%d, "
|
||||||
"tags order:%d, tags order col:%d, numOfOutputCols:%d, numOfCols:%d, interval:%" PRId64
|
"tags order:%d, tags order col:%d, numOfOutputCols:%d, numOfCols:%d, interval:%" PRId64
|
||||||
", fillType:%d, comptslen:%d, limit:%" PRId64
|
", fillType:%d, comptslen:%d, limit:%" PRId64 ", offset:%" PRId64,
|
||||||
", "
|
|
||||||
"offset:%" PRId64,
|
|
||||||
pQueryTableMsg, pQueryTableMsg->numOfTables, pQueryTableMsg->window.skey, pQueryTableMsg->window.ekey,
|
pQueryTableMsg, pQueryTableMsg->numOfTables, pQueryTableMsg->window.skey, pQueryTableMsg->window.ekey,
|
||||||
pQueryTableMsg->numOfGroupCols, pQueryTableMsg->numOfTagsCols, pQueryTableMsg->order,
|
pQueryTableMsg->numOfGroupCols, pQueryTableMsg->numOfTagsCols, pQueryTableMsg->order,
|
||||||
pQueryTableMsg->orderType, pQueryTableMsg->orderByIdx, pQueryTableMsg->numOfOutputCols,
|
pQueryTableMsg->orderType, pQueryTableMsg->orderByIdx, pQueryTableMsg->numOfOutputCols,
|
||||||
|
@ -6181,8 +6186,9 @@ int32_t qCreateQueryInfo(void* tsdb, SQueryTableMsg *pQueryTableMsg, SQInfo **pQ
|
||||||
assert(pQueryTableMsg != NULL);
|
assert(pQueryTableMsg != NULL);
|
||||||
|
|
||||||
int32_t code = TSDB_CODE_SUCCESS;
|
int32_t code = TSDB_CODE_SUCCESS;
|
||||||
|
|
||||||
SArray *pTableIdList = NULL;
|
SArray *pTableIdList = NULL;
|
||||||
if ((code = convertQueryTableMsg(pQueryTableMsg, &pTableIdList)) != TSDB_CODE_SUCCESS) {
|
if ((code = convertQueryMsg(pQueryTableMsg, &pTableIdList)) != TSDB_CODE_SUCCESS) {
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue