fix error summery
This commit is contained in:
parent
6d56822f83
commit
f876bfd6c9
|
@ -2016,13 +2016,19 @@ _end:
|
||||||
}
|
}
|
||||||
|
|
||||||
static SSDataBlock* sysTableBuildVgUsage(SOperatorInfo* pOperator) {
|
static SSDataBlock* sysTableBuildVgUsage(SOperatorInfo* pOperator) {
|
||||||
int32_t code = TSDB_CODE_SUCCESS;
|
int32_t code = TSDB_CODE_SUCCESS;
|
||||||
int32_t lino = 0;
|
int32_t lino = 0;
|
||||||
SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo;
|
SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo;
|
||||||
SStorageAPI* pAPI = &pTaskInfo->storageAPI;
|
SStorageAPI* pAPI = &pTaskInfo->storageAPI;
|
||||||
int8_t firstMetaCursor = 0;
|
|
||||||
|
|
||||||
SSysTableScanInfo* pInfo = pOperator->info;
|
SSysTableScanInfo* pInfo = pOperator->info;
|
||||||
|
|
||||||
|
SSDataBlock* p = NULL;
|
||||||
|
int32_t numOfRows = 0;
|
||||||
|
|
||||||
|
const char* db = NULL;
|
||||||
|
int32_t vgId = 0;
|
||||||
|
int32_t numOfCols = 0;
|
||||||
|
|
||||||
// the retrieve is executed on the mnode, so return tables that belongs to the information schema database.
|
// the retrieve is executed on the mnode, so return tables that belongs to the information schema database.
|
||||||
if (pInfo->readHandle.mnd != NULL) {
|
if (pInfo->readHandle.mnd != NULL) {
|
||||||
// code = buildSysUsageInfo(pInfo, pOperator->resultInfo.capacity);
|
// code = buildSysUsageInfo(pInfo, pOperator->resultInfo.capacity);
|
||||||
|
@ -2038,18 +2044,9 @@ static SSDataBlock* sysTableBuildVgUsage(SOperatorInfo* pOperator) {
|
||||||
}
|
}
|
||||||
if (pInfo->pCur == NULL) {
|
if (pInfo->pCur == NULL) {
|
||||||
pInfo->pCur = pAPI->metaFn.openTableMetaCursor(pInfo->readHandle.vnode);
|
pInfo->pCur = pAPI->metaFn.openTableMetaCursor(pInfo->readHandle.vnode);
|
||||||
firstMetaCursor = 1;
|
|
||||||
}
|
|
||||||
if (!firstMetaCursor) {
|
|
||||||
pAPI->metaFn.resumeTableMetaCursor(pInfo->pCur, 0, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
blockDataCleanup(pInfo->pRes);
|
blockDataCleanup(pInfo->pRes);
|
||||||
int32_t numOfRows = 0;
|
|
||||||
|
|
||||||
const char* db = NULL;
|
|
||||||
int32_t vgId = 0;
|
|
||||||
int32_t numOfCols = 0;
|
|
||||||
|
|
||||||
pAPI->metaFn.getBasicInfo(pInfo->readHandle.vnode, &db, &vgId, NULL, NULL);
|
pAPI->metaFn.getBasicInfo(pInfo->readHandle.vnode, &db, &vgId, NULL, NULL);
|
||||||
|
|
||||||
|
@ -2060,7 +2057,8 @@ static SSDataBlock* sysTableBuildVgUsage(SOperatorInfo* pOperator) {
|
||||||
code = pAPI->metaFn.getDBSize(pInfo->readHandle.vnode, &staticsInfo);
|
code = pAPI->metaFn.getDBSize(pInfo->readHandle.vnode, &staticsInfo);
|
||||||
QUERY_CHECK_CODE(code, lino, _end);
|
QUERY_CHECK_CODE(code, lino, _end);
|
||||||
|
|
||||||
vnodeEstimateRawDataSize(pOperator, &staticsInfo);
|
code = vnodeEstimateRawDataSize(pOperator, &staticsInfo);
|
||||||
|
QUERY_CHECK_CODE(code, lino, _end);
|
||||||
|
|
||||||
SName sn = {0};
|
SName sn = {0};
|
||||||
char dbname[TSDB_DB_FNAME_LEN + VARSTR_HEADER_SIZE] = {0};
|
char dbname[TSDB_DB_FNAME_LEN + VARSTR_HEADER_SIZE] = {0};
|
||||||
|
@ -2072,7 +2070,7 @@ static SSDataBlock* sysTableBuildVgUsage(SOperatorInfo* pOperator) {
|
||||||
|
|
||||||
varDataSetLen(dbname, strlen(varDataVal(dbname)));
|
varDataSetLen(dbname, strlen(varDataVal(dbname)));
|
||||||
|
|
||||||
SSDataBlock* p = buildInfoSchemaTableMetaBlock(TSDB_INS_TABLE_USAGE);
|
p = buildInfoSchemaTableMetaBlock(TSDB_INS_TABLE_USAGE);
|
||||||
QUERY_CHECK_NULL(p, code, lino, _end, terrno);
|
QUERY_CHECK_NULL(p, code, lino, _end, terrno);
|
||||||
|
|
||||||
code = blockDataEnsureCapacity(p, pOperator->resultInfo.capacity);
|
code = blockDataEnsureCapacity(p, pOperator->resultInfo.capacity);
|
||||||
|
@ -2135,9 +2133,9 @@ static SSDataBlock* sysTableBuildVgUsage(SOperatorInfo* pOperator) {
|
||||||
}
|
}
|
||||||
blockDataDestroy(p);
|
blockDataDestroy(p);
|
||||||
p = NULL;
|
p = NULL;
|
||||||
setOperatorCompleted(pOperator);
|
|
||||||
|
|
||||||
pInfo->loadInfo.totalRows += pInfo->pRes->info.rows;
|
pInfo->loadInfo.totalRows += pInfo->pRes->info.rows;
|
||||||
|
setOperatorCompleted(pOperator);
|
||||||
|
|
||||||
_end:
|
_end:
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
|
@ -3213,26 +3211,24 @@ typedef struct {
|
||||||
tb_uid_t uid;
|
tb_uid_t uid;
|
||||||
} STableId;
|
} STableId;
|
||||||
|
|
||||||
static int32_t vnodeEstimateDataSizeByUid(SOperatorInfo* pOperator, STableId* id, SDbSizeStatisInfo* pStaticInfo) {
|
static int32_t buildTableListInfo(SOperatorInfo* pOperator, STableId* id, STableListInfo** ppTableListInfo) {
|
||||||
int32_t rowLen = 0;
|
|
||||||
int32_t code = TSDB_CODE_SUCCESS;
|
int32_t code = TSDB_CODE_SUCCESS;
|
||||||
int32_t line = 0;
|
int32_t line = 0;
|
||||||
SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo;
|
SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo;
|
||||||
SStorageAPI* pAPI = &pTaskInfo->storageAPI;
|
SStorageAPI* pAPI = &pTaskInfo->storageAPI;
|
||||||
SSysTableScanInfo* pInfo = pOperator->info;
|
SSysTableScanInfo* pInfo = pOperator->info;
|
||||||
|
SReadHandle* pReadHandle = &pInfo->readHandle;
|
||||||
SReadHandle* pReadHandle = &pInfo->readHandle;
|
SArray* pList = NULL;
|
||||||
|
|
||||||
STableListInfo* pTableListInfo = tableListCreate();
|
STableListInfo* pTableListInfo = tableListCreate();
|
||||||
|
QUERY_CHECK_NULL(ppTableListInfo, code, line, _end, terrno);
|
||||||
|
|
||||||
if (id->type == TSDB_SUPER_TABLE) {
|
if (id->type == TSDB_SUPER_TABLE) {
|
||||||
SArray* pList = taosArrayInit(4, sizeof(uint64_t));
|
pList = taosArrayInit(4, sizeof(uint64_t));
|
||||||
code = pTaskInfo->storageAPI.metaFn.getChildTableList(pReadHandle->vnode, id->uid, pList);
|
QUERY_CHECK_NULL(pList, code, line, _end, terrno);
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
|
||||||
pTaskInfo->code = code;
|
code = pReadHandle->api.metaFn.getChildTableList(pReadHandle->vnode, id->uid, pList);
|
||||||
taosArrayDestroy(pList);
|
QUERY_CHECK_CODE(code, line, _end);
|
||||||
tableListDestroy(pTableListInfo);
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t num = taosArrayGetSize(pList);
|
size_t num = taosArrayGetSize(pList);
|
||||||
for (int32_t i = 0; i < num; ++i) {
|
for (int32_t i = 0; i < num; ++i) {
|
||||||
|
@ -3240,30 +3236,44 @@ static int32_t vnodeEstimateDataSizeByUid(SOperatorInfo* pOperator, STableId* id
|
||||||
if (id == NULL) {
|
if (id == NULL) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
code = tableListAddTableInfo(pTableListInfo, *id, 0);
|
code = tableListAddTableInfo(pTableListInfo, *id, 0);
|
||||||
if (code) {
|
QUERY_CHECK_CODE(code, line, _end);
|
||||||
pTaskInfo->code = code;
|
|
||||||
tableListDestroy(pTableListInfo);
|
|
||||||
taosArrayDestroy(pList);
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
taosArrayDestroy(pList);
|
taosArrayDestroy(pList);
|
||||||
|
pList = NULL;
|
||||||
|
|
||||||
} else if (id->type == TSDB_NORMAL_TABLE) {
|
} else if (id->type == TSDB_NORMAL_TABLE) {
|
||||||
code = tableListAddTableInfo(pTableListInfo, id->uid, 0);
|
code = tableListAddTableInfo(pTableListInfo, id->uid, 0);
|
||||||
if (code) {
|
QUERY_CHECK_CODE(code, line, _end);
|
||||||
pTaskInfo->code = code;
|
|
||||||
tableListDestroy(pTableListInfo);
|
|
||||||
return code;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
*ppTableListInfo = pTableListInfo;
|
||||||
|
return code;
|
||||||
|
_end:
|
||||||
|
taosArrayDestroy(pList);
|
||||||
|
tableListDestroy(pTableListInfo);
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
static int32_t vnodeEstimateDataSizeByUid(SOperatorInfo* pOperator, STableId* id, SDbSizeStatisInfo* pStaticInfo) {
|
||||||
|
int32_t code = TSDB_CODE_SUCCESS;
|
||||||
|
int32_t line = 0;
|
||||||
|
SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo;
|
||||||
|
SStorageAPI* pAPI = &pTaskInfo->storageAPI;
|
||||||
|
SSysTableScanInfo* pInfo = pOperator->info;
|
||||||
SQueryTableDataCond cond = {0};
|
SQueryTableDataCond cond = {0};
|
||||||
code = initTableblockDistQueryCond(id->uid, &cond);
|
|
||||||
|
SReadHandle* pReadHandle = &pInfo->readHandle;
|
||||||
|
|
||||||
|
STableListInfo* pTableListInfo = NULL;
|
||||||
|
code = buildTableListInfo(pOperator, id, &pTableListInfo);
|
||||||
QUERY_CHECK_CODE(code, line, _end);
|
QUERY_CHECK_CODE(code, line, _end);
|
||||||
|
|
||||||
|
tb_uid_t tbId = id->type == TSDB_SUPER_TABLE ? id->uid : 0;
|
||||||
|
|
||||||
|
code = initTableblockDistQueryCond(tbId, &cond);
|
||||||
|
QUERY_CHECK_CODE(code, line, _end);
|
||||||
|
|
||||||
pInfo->pTableListInfo = pTableListInfo;
|
pInfo->pTableListInfo = pTableListInfo;
|
||||||
|
|
||||||
int32_t num = 0;
|
int32_t num = 0;
|
||||||
code = tableListGetSize(pTableListInfo, &num);
|
code = tableListGetSize(pTableListInfo, &num);
|
||||||
QUERY_CHECK_CODE(code, line, _end);
|
QUERY_CHECK_CODE(code, line, _end);
|
||||||
|
@ -3285,12 +3295,10 @@ static int32_t vnodeEstimateDataSizeByUid(SOperatorInfo* pOperator, STableId* id
|
||||||
blockDistInfo.numOfInmemRows = (int32_t)pAPI->tsdReader.tsdReaderGetNumOfInMemRows(pInfo->pHandle);
|
blockDistInfo.numOfInmemRows = (int32_t)pAPI->tsdReader.tsdReaderGetNumOfInMemRows(pInfo->pHandle);
|
||||||
|
|
||||||
int64_t rawDiskSize = 0, rawCacheSize = 0;
|
int64_t rawDiskSize = 0, rawCacheSize = 0;
|
||||||
|
|
||||||
rawDiskSize = (blockDistInfo.totalRows + blockDistInfo.numOfSttRows) * blockDistInfo.rowSize;
|
rawDiskSize = (blockDistInfo.totalRows + blockDistInfo.numOfSttRows) * blockDistInfo.rowSize;
|
||||||
rawCacheSize = blockDistInfo.numOfInmemRows * blockDistInfo.rowSize;
|
rawCacheSize = blockDistInfo.numOfInmemRows * blockDistInfo.rowSize;
|
||||||
pStaticInfo->rawDataSize += rawDiskSize;
|
pStaticInfo->rawDataSize += rawDiskSize;
|
||||||
pStaticInfo->cacheSize += rawCacheSize;
|
pStaticInfo->cacheSize += rawCacheSize;
|
||||||
QUERY_CHECK_CODE(code, line, _end);
|
|
||||||
|
|
||||||
if (pInfo->pHandle != NULL) {
|
if (pInfo->pHandle != NULL) {
|
||||||
pReadHandle->api.tsdReader.tsdReaderClose(pInfo->pHandle);
|
pReadHandle->api.tsdReader.tsdReaderClose(pInfo->pHandle);
|
||||||
|
@ -3298,6 +3306,7 @@ static int32_t vnodeEstimateDataSizeByUid(SOperatorInfo* pOperator, STableId* id
|
||||||
}
|
}
|
||||||
|
|
||||||
tableListDestroy(pInfo->pTableListInfo);
|
tableListDestroy(pInfo->pTableListInfo);
|
||||||
|
pInfo->pTableListInfo = NULL;
|
||||||
return code;
|
return code;
|
||||||
_end:
|
_end:
|
||||||
|
|
||||||
|
@ -3308,10 +3317,16 @@ _end:
|
||||||
|
|
||||||
tableListDestroy(pInfo->pTableListInfo);
|
tableListDestroy(pInfo->pTableListInfo);
|
||||||
pInfo->pTableListInfo = NULL;
|
pInfo->pTableListInfo = NULL;
|
||||||
|
if (code) {
|
||||||
|
pTaskInfo->code = code;
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
cleanupQueryTableDataCond(&cond);
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t vnodeGetDataSize(SOperatorInfo* pOperator, SArray* pTableList, SDbSizeStatisInfo* pStaticInfo) {
|
static int32_t vnodeEstimateRawDataSizeImpl(SOperatorInfo* pOperator, SArray* pTableList,
|
||||||
|
SDbSizeStatisInfo* pStaticInfo) {
|
||||||
SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo;
|
SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo;
|
||||||
SStorageAPI* pAPI = &pTaskInfo->storageAPI;
|
SStorageAPI* pAPI = &pTaskInfo->storageAPI;
|
||||||
SSysTableScanInfo* pInfo = pOperator->info;
|
SSysTableScanInfo* pInfo = pOperator->info;
|
||||||
|
@ -3361,21 +3376,26 @@ static int32_t vnodeEstimateRawDataSize(SOperatorInfo* pOperator, SDbSizeStatisI
|
||||||
continue;
|
continue;
|
||||||
} else if (pInfo->pCur->mr.me.type == TSDB_NORMAL_TABLE) {
|
} else if (pInfo->pCur->mr.me.type == TSDB_NORMAL_TABLE) {
|
||||||
STableId id = {.type = TSDB_NORMAL_TABLE, .uid = pInfo->pCur->mr.me.uid};
|
STableId id = {.type = TSDB_NORMAL_TABLE, .uid = pInfo->pCur->mr.me.uid};
|
||||||
if (taosArrayPush(pIdList, &pInfo->pCur->mr.me.uid) == NULL) {
|
if (taosArrayPush(pIdList, &id) == NULL) {
|
||||||
TAOS_CHECK_GOTO(terrno, &line, _exit);
|
TAOS_CHECK_GOTO(terrno, &line, _exit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
code = vnodeGetDataSize(pOperator, pIdList, pStaticInfo);
|
if (pInfo->pCur) {
|
||||||
|
pAPI->metaFn.closeTableMetaCursor(pInfo->pCur);
|
||||||
|
pInfo->pCur = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
code = vnodeEstimateRawDataSizeImpl(pOperator, pIdList, pStaticInfo);
|
||||||
|
|
||||||
_exit:
|
_exit:
|
||||||
if (pInfo->pCur) {
|
if (pInfo->pCur) {
|
||||||
pAPI->metaFn.closeTableMetaCursor(pInfo->pCur);
|
pAPI->metaFn.closeTableMetaCursor(pInfo->pCur);
|
||||||
pInfo->pCur = NULL;
|
pInfo->pCur = NULL;
|
||||||
setOperatorCompleted(pOperator);
|
|
||||||
}
|
}
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
qError("%s failed at line %d since %s", __func__, line, tstrerror(code));
|
qError("%s failed at line %d since %s", __func__, line, tstrerror(code));
|
||||||
|
pTaskInfo->code = code;
|
||||||
}
|
}
|
||||||
|
|
||||||
taosArrayDestroy(pIdList);
|
taosArrayDestroy(pIdList);
|
||||||
|
|
Loading…
Reference in New Issue