[td-225] refactor codes.
This commit is contained in:
parent
3a26dd3bfc
commit
4aaf2bd99c
|
@ -89,7 +89,7 @@ typedef struct STableComInfo {
|
||||||
|
|
||||||
typedef struct SCMCorVgroupInfo {
|
typedef struct SCMCorVgroupInfo {
|
||||||
int32_t version;
|
int32_t version;
|
||||||
int8_t inUse;
|
int8_t inUse;
|
||||||
int8_t numOfEps;
|
int8_t numOfEps;
|
||||||
SEpAddr epAddr[TSDB_MAX_REPLICA];
|
SEpAddr epAddr[TSDB_MAX_REPLICA];
|
||||||
} SCMCorVgroupInfo;
|
} SCMCorVgroupInfo;
|
||||||
|
@ -107,7 +107,7 @@ typedef struct STableMeta {
|
||||||
} STableMeta;
|
} STableMeta;
|
||||||
|
|
||||||
typedef struct STableMetaInfo {
|
typedef struct STableMetaInfo {
|
||||||
STableMeta * pTableMeta; // table meta, cached in client side and acquired by name
|
STableMeta *pTableMeta; // table meta, cached in client side and acquired by name
|
||||||
SVgroupsInfo *vgroupList;
|
SVgroupsInfo *vgroupList;
|
||||||
SArray *pVgroupTables; // SArray<SVgroupTableInfo>
|
SArray *pVgroupTables; // SArray<SVgroupTableInfo>
|
||||||
|
|
||||||
|
|
|
@ -128,6 +128,7 @@ static void tscUpdateVgroupInfo(SSqlObj *pObj, SRpcEpSet *pEpSet) {
|
||||||
tscDebug("after: EndPoint in use: %d", pVgroupInfo->inUse);
|
tscDebug("after: EndPoint in use: %d", pVgroupInfo->inUse);
|
||||||
taosCorEndWrite(&pVgroupInfo->version);
|
taosCorEndWrite(&pVgroupInfo->version);
|
||||||
}
|
}
|
||||||
|
|
||||||
void tscPrintMgmtEp() {
|
void tscPrintMgmtEp() {
|
||||||
SRpcEpSet dump;
|
SRpcEpSet dump;
|
||||||
tscDumpMgmtEpSet(&dump);
|
tscDumpMgmtEpSet(&dump);
|
||||||
|
@ -745,7 +746,6 @@ int tscBuildQueryMsg(SSqlObj *pSql, SSqlInfo *pInfo) {
|
||||||
SSqlExpr *pExpr = tscSqlExprGet(pQueryInfo, i);
|
SSqlExpr *pExpr = tscSqlExprGet(pQueryInfo, i);
|
||||||
|
|
||||||
if (!tscValidateColumnId(pTableMetaInfo, pExpr->colInfo.colId, pExpr->numOfParams)) {
|
if (!tscValidateColumnId(pTableMetaInfo, pExpr->colInfo.colId, pExpr->numOfParams)) {
|
||||||
/* column id is not valid according to the cached table meta, the table meta is expired */
|
|
||||||
tscError("%p table schema is not matched with parsed sql", pSql);
|
tscError("%p table schema is not matched with parsed sql", pSql);
|
||||||
return TSDB_CODE_TSC_INVALID_SQL;
|
return TSDB_CODE_TSC_INVALID_SQL;
|
||||||
}
|
}
|
||||||
|
@ -2294,6 +2294,7 @@ int tscGetSTableVgroupInfo(SSqlObj *pSql, int32_t clauseIndex) {
|
||||||
|
|
||||||
pNewQueryInfo->numOfTables = pQueryInfo->numOfTables;
|
pNewQueryInfo->numOfTables = pQueryInfo->numOfTables;
|
||||||
registerSqlObj(pNew);
|
registerSqlObj(pNew);
|
||||||
|
|
||||||
tscDebug("%p new sqlObj:%p to get vgroupInfo, numOfTables:%d", pSql, pNew, pNewQueryInfo->numOfTables);
|
tscDebug("%p new sqlObj:%p to get vgroupInfo, numOfTables:%d", pSql, pNew, pNewQueryInfo->numOfTables);
|
||||||
|
|
||||||
pNew->fp = tscTableMetaCallBack;
|
pNew->fp = tscTableMetaCallBack;
|
||||||
|
|
|
@ -786,14 +786,17 @@ int taos_validate_sql(TAOS *taos, const char *sql) {
|
||||||
}
|
}
|
||||||
|
|
||||||
SSqlObj* pSql = calloc(1, sizeof(SSqlObj));
|
SSqlObj* pSql = calloc(1, sizeof(SSqlObj));
|
||||||
|
|
||||||
pSql->pTscObj = taos;
|
pSql->pTscObj = taos;
|
||||||
pSql->signature = pSql;
|
pSql->signature = pSql;
|
||||||
|
|
||||||
SSqlRes *pRes = &pSql->res;
|
SSqlRes *pRes = &pSql->res;
|
||||||
SSqlCmd *pCmd = &pSql->cmd;
|
SSqlCmd *pCmd = &pSql->cmd;
|
||||||
|
|
||||||
pRes->numOfTotal = 0;
|
pRes->numOfTotal = 0;
|
||||||
pRes->numOfClauseTotal = 0;
|
pRes->numOfClauseTotal = 0;
|
||||||
|
|
||||||
|
|
||||||
tscDebug("%p Valid SQL: %s pObj:%p", pSql, sql, pObj);
|
tscDebug("%p Valid SQL: %s pObj:%p", pSql, sql, pObj);
|
||||||
|
|
||||||
int32_t sqlLen = (int32_t)strlen(sql);
|
int32_t sqlLen = (int32_t)strlen(sql);
|
||||||
|
@ -829,11 +832,12 @@ int taos_validate_sql(TAOS *taos, const char *sql) {
|
||||||
tsem_wait(&pSql->rspSem);
|
tsem_wait(&pSql->rspSem);
|
||||||
code = pSql->res.code;
|
code = pSql->res.code;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
tscDebug("%p Valid SQL result:%d, %s pObj:%p", pSql, code, taos_errstr(taos), pObj);
|
tscDebug("%p Valid SQL result:%d, %s pObj:%p", pSql, code, taos_errstr(taos), pObj);
|
||||||
}
|
}
|
||||||
taos_free_result(pSql);
|
|
||||||
|
|
||||||
|
taos_free_result(pSql);
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -932,34 +936,32 @@ int taos_load_table_info(TAOS *taos, const char *tableNameList) {
|
||||||
SSqlObj* pSql = calloc(1, sizeof(SSqlObj));
|
SSqlObj* pSql = calloc(1, sizeof(SSqlObj));
|
||||||
pSql->pTscObj = taos;
|
pSql->pTscObj = taos;
|
||||||
pSql->signature = pSql;
|
pSql->signature = pSql;
|
||||||
|
|
||||||
SSqlRes *pRes = &pSql->res;
|
SSqlRes *pRes = &pSql->res;
|
||||||
|
|
||||||
|
pRes->code = 0;
|
||||||
pRes->numOfTotal = 0; // the number of getting table meta from server
|
pRes->numOfTotal = 0; // the number of getting table meta from server
|
||||||
pRes->numOfClauseTotal = 0;
|
pRes->numOfClauseTotal = 0;
|
||||||
|
|
||||||
pRes->code = 0;
|
|
||||||
|
|
||||||
assert(pSql->fp == NULL);
|
assert(pSql->fp == NULL);
|
||||||
tscDebug("%p tableNameList: %s pObj:%p", pSql, tableNameList, pObj);
|
tscDebug("%p tableNameList: %s pObj:%p", pSql, tableNameList, pObj);
|
||||||
|
|
||||||
int32_t tblListLen = (int32_t)strlen(tableNameList);
|
int32_t tblListLen = (int32_t)strlen(tableNameList);
|
||||||
if (tblListLen > MAX_TABLE_NAME_LENGTH) {
|
if (tblListLen > MAX_TABLE_NAME_LENGTH) {
|
||||||
tscError("%p tableNameList too long, length:%d, maximum allowed:%d", pSql, tblListLen, MAX_TABLE_NAME_LENGTH);
|
tscError("%p tableNameList too long, length:%d, maximum allowed:%d", pSql, tblListLen, MAX_TABLE_NAME_LENGTH);
|
||||||
pRes->code = TSDB_CODE_TSC_INVALID_SQL;
|
tscFreeSqlObj(pSql);
|
||||||
taosTFree(pSql);
|
return TSDB_CODE_TSC_INVALID_SQL;
|
||||||
return pRes->code;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
char *str = calloc(1, tblListLen + 1);
|
char *str = calloc(1, tblListLen + 1);
|
||||||
if (str == NULL) {
|
if (str == NULL) {
|
||||||
pRes->code = TSDB_CODE_TSC_OUT_OF_MEMORY;
|
|
||||||
tscError("%p failed to malloc sql string buffer", pSql);
|
tscError("%p failed to malloc sql string buffer", pSql);
|
||||||
taosTFree(pSql);
|
tscFreeSqlObj(pSql);
|
||||||
return pRes->code;
|
return TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
strtolower(str, tableNameList);
|
strtolower(str, tableNameList);
|
||||||
pRes->code = (uint8_t)tscParseTblNameList(pSql, str, tblListLen);
|
int32_t code = (uint8_t) tscParseTblNameList(pSql, str, tblListLen);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* set the qhandle to 0 before return in order to erase the qhandle value assigned in the previous successful query.
|
* set the qhandle to 0 before return in order to erase the qhandle value assigned in the previous successful query.
|
||||||
|
@ -969,17 +971,17 @@ int taos_load_table_info(TAOS *taos, const char *tableNameList) {
|
||||||
pRes->qhandle = 0;
|
pRes->qhandle = 0;
|
||||||
free(str);
|
free(str);
|
||||||
|
|
||||||
if (pRes->code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
tscFreeSqlObj(pSql);
|
tscFreeSqlObj(pSql);
|
||||||
return pRes->code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
tscDoQuery(pSql);
|
tscDoQuery(pSql);
|
||||||
|
|
||||||
tscDebug("%p load multi metermeta result:%d %s pObj:%p", pSql, pRes->code, taos_errstr(taos), pObj);
|
tscDebug("%p load multi table meta result:%d %s pObj:%p", pSql, pRes->code, taos_errstr(taos), pObj);
|
||||||
if (pRes->code != TSDB_CODE_SUCCESS) {
|
if ((code = pRes->code) != TSDB_CODE_SUCCESS) {
|
||||||
tscPartiallyFreeSqlObj(pSql);
|
tscFreeSqlObj(pSql);
|
||||||
}
|
}
|
||||||
|
|
||||||
return pRes->code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,6 +105,7 @@ static SSub* tscCreateSubscription(STscObj* pObj, const char* topic, const char*
|
||||||
code = TAOS_SYSTEM_ERROR(errno);
|
code = TAOS_SYSTEM_ERROR(errno);
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
tstrncpy(pSub->topic, topic, sizeof(pSub->topic));
|
tstrncpy(pSub->topic, topic, sizeof(pSub->topic));
|
||||||
pSub->progress = taosArrayInit(32, sizeof(SSubscriptionProgress));
|
pSub->progress = taosArrayInit(32, sizeof(SSubscriptionProgress));
|
||||||
if (pSub->progress == NULL) {
|
if (pSub->progress == NULL) {
|
||||||
|
@ -119,6 +120,7 @@ static SSub* tscCreateSubscription(STscObj* pObj, const char* topic, const char*
|
||||||
code = TSDB_CODE_TSC_OUT_OF_MEMORY;
|
code = TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
pSql->signature = pSql;
|
pSql->signature = pSql;
|
||||||
pSql->pTscObj = pObj;
|
pSql->pTscObj = pObj;
|
||||||
pSql->pSubscription = pSub;
|
pSql->pSubscription = pSub;
|
||||||
|
@ -142,6 +144,7 @@ static SSub* tscCreateSubscription(STscObj* pObj, const char* topic, const char*
|
||||||
code = TSDB_CODE_TSC_OUT_OF_MEMORY;
|
code = TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
strtolower(pSql->sqlstr, pSql->sqlstr);
|
strtolower(pSql->sqlstr, pSql->sqlstr);
|
||||||
pRes->qhandle = 0;
|
pRes->qhandle = 0;
|
||||||
pRes->numOfRows = 1;
|
pRes->numOfRows = 1;
|
||||||
|
@ -159,6 +162,7 @@ static SSub* tscCreateSubscription(STscObj* pObj, const char* topic, const char*
|
||||||
tsem_wait(&pSub->sem);
|
tsem_wait(&pSub->sem);
|
||||||
code = pSql->res.code;
|
code = pSql->res.code;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
line = __LINE__;
|
line = __LINE__;
|
||||||
goto fail;
|
goto fail;
|
||||||
|
@ -180,8 +184,10 @@ fail:
|
||||||
} else {
|
} else {
|
||||||
tscFreeSqlObj(pSql);
|
tscFreeSqlObj(pSql);
|
||||||
}
|
}
|
||||||
|
|
||||||
pSql = NULL;
|
pSql = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pSub != NULL) {
|
if (pSub != NULL) {
|
||||||
taosArrayDestroy(pSub->progress);
|
taosArrayDestroy(pSub->progress);
|
||||||
tsem_destroy(&pSub->sem);
|
tsem_destroy(&pSub->sem);
|
||||||
|
|
|
@ -391,10 +391,21 @@ static UNUSED_FUNC void tscFreeSubobj(SSqlObj* pSql) {
|
||||||
*/
|
*/
|
||||||
void tscFreeSqlObjInCache(void *pSql) {
|
void tscFreeSqlObjInCache(void *pSql) {
|
||||||
assert(pSql != NULL);
|
assert(pSql != NULL);
|
||||||
|
|
||||||
SSqlObj** p = (SSqlObj**)pSql;
|
SSqlObj** p = (SSqlObj**)pSql;
|
||||||
|
STscObj* pTscObj = (*p)->pTscObj;
|
||||||
|
|
||||||
assert((*p)->self != 0 && (*p)->self == (p));
|
assert((*p)->self != 0 && (*p)->self == (p));
|
||||||
tscFreeSqlObj(*p);
|
tscFreeSqlObj(*p);
|
||||||
|
|
||||||
|
int32_t ref = T_REF_DEC(pTscObj);
|
||||||
|
assert(ref >= 0);
|
||||||
|
|
||||||
|
tscDebug("%p free sqlObj completed, tscObj:%p ref:%d", *p, pTscObj, ref);
|
||||||
|
if (ref == 0) {
|
||||||
|
tscDebug("%p all sqlObj freed, free tscObj:%p", *p, pTscObj);
|
||||||
|
tscCloseTscObj(pTscObj);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void tscFreeSqlObj(SSqlObj* pSql) {
|
void tscFreeSqlObj(SSqlObj* pSql) {
|
||||||
|
@ -402,10 +413,7 @@ void tscFreeSqlObj(SSqlObj* pSql) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *p = pSql;
|
|
||||||
|
|
||||||
tscDebug("%p start to free sqlObj", pSql);
|
tscDebug("%p start to free sqlObj", pSql);
|
||||||
STscObj* pTscObj = pSql->pTscObj;
|
|
||||||
|
|
||||||
tscFreeSubobj(pSql);
|
tscFreeSubobj(pSql);
|
||||||
tscPartiallyFreeSqlObj(pSql);
|
tscPartiallyFreeSqlObj(pSql);
|
||||||
|
@ -423,15 +431,6 @@ void tscFreeSqlObj(SSqlObj* pSql) {
|
||||||
tsem_destroy(&pSql->rspSem);
|
tsem_destroy(&pSql->rspSem);
|
||||||
|
|
||||||
free(pSql);
|
free(pSql);
|
||||||
|
|
||||||
int32_t ref = T_REF_DEC(pTscObj);
|
|
||||||
assert(ref >= 0);
|
|
||||||
|
|
||||||
tscDebug("%p free sqlObj completed, tscObj:%p ref:%d", p, pTscObj, ref);
|
|
||||||
if (ref == 0) {
|
|
||||||
tscDebug("%p all sqlObj freed, free tscObj:%p", p, pTscObj);
|
|
||||||
tscCloseTscObj(pTscObj);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tscDestroyDataBlock(STableDataBlocks* pDataBlock) {
|
void tscDestroyDataBlock(STableDataBlocks* pDataBlock) {
|
||||||
|
@ -1821,8 +1820,7 @@ SSqlObj* createSimpleSubObj(SSqlObj* pSql, void (*fp)(), void* param, int32_t cm
|
||||||
pNew->sqlstr = strdup(pSql->sqlstr);
|
pNew->sqlstr = strdup(pSql->sqlstr);
|
||||||
if (pNew->sqlstr == NULL) {
|
if (pNew->sqlstr == NULL) {
|
||||||
tscError("%p new subquery failed", pSql);
|
tscError("%p new subquery failed", pSql);
|
||||||
|
tscFreeSqlObj(pNew);
|
||||||
free(pNew);
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1832,6 +1830,7 @@ SSqlObj* createSimpleSubObj(SSqlObj* pSql, void (*fp)(), void* param, int32_t cm
|
||||||
STableMetaInfo* pMasterTableMetaInfo = tscGetTableMetaInfoFromCmd(&pSql->cmd, pSql->cmd.clauseIndex, 0);
|
STableMetaInfo* pMasterTableMetaInfo = tscGetTableMetaInfoFromCmd(&pSql->cmd, pSql->cmd.clauseIndex, 0);
|
||||||
|
|
||||||
tscAddTableMetaInfo(pQueryInfo, pMasterTableMetaInfo->name, NULL, NULL, NULL);
|
tscAddTableMetaInfo(pQueryInfo, pMasterTableMetaInfo->name, NULL, NULL, NULL);
|
||||||
|
|
||||||
registerSqlObj(pNew);
|
registerSqlObj(pNew);
|
||||||
return pNew;
|
return pNew;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue