diff --git a/src/client/inc/tscUtil.h b/src/client/inc/tscUtil.h index 344152f7d4..0b6ae06416 100644 --- a/src/client/inc/tscUtil.h +++ b/src/client/inc/tscUtil.h @@ -134,6 +134,7 @@ void tscFieldInfoSetBinExpr(SFieldInfo* pFieldInfo, int32_t index, SSqlFunctionE void tscFieldInfoCalOffset(SQueryInfo* pQueryInfo); void tscFieldInfoCopy(SFieldInfo* src, SFieldInfo* dst, const int32_t* indexList, int32_t size); void tscFieldInfoCopyAll(SFieldInfo* dst, SFieldInfo* src); +void tscFieldInfoUpdateOffsetForInterResult(SQueryInfo* pQueryInfo); TAOS_FIELD* tscFieldInfoGetField(SQueryInfo* pQueryInfo, int32_t index); int16_t tscFieldInfoGetOffset(SQueryInfo* pQueryInfo, int32_t index); diff --git a/src/client/inc/tsclient.h b/src/client/inc/tsclient.h index 054b2894c5..9657912716 100644 --- a/src/client/inc/tsclient.h +++ b/src/client/inc/tsclient.h @@ -468,7 +468,6 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo); extern void * pVnodeConn; extern void * pTscMgmtConn; extern void * tscCacheHandle; -extern int32_t globalCode; extern int slaveIndex; extern void * tscTmr; extern void * tscQhandle; diff --git a/src/client/src/tscAsync.c b/src/client/src/tscAsync.c index 99104ed68c..36cd42332b 100644 --- a/src/client/src/tscAsync.c +++ b/src/client/src/tscAsync.c @@ -200,7 +200,6 @@ void taos_fetch_rows_a(TAOS_RES *taosa, void (*fp)(void *, TAOS_RES *, int), voi SSqlObj *pSql = (SSqlObj *)taosa; if (pSql == NULL || pSql->signature != pSql) { tscError("sql object is NULL"); -// globalCode = TSDB_CODE_DISCONNECTED; tscQueueAsyncError(fp, param, TSDB_CODE_DISCONNECTED); return; } @@ -232,7 +231,6 @@ void taos_fetch_row_a(TAOS_RES *taosa, void (*fp)(void *, TAOS_RES *, TAOS_ROW), SSqlObj *pSql = (SSqlObj *)taosa; if (pSql == NULL || pSql->signature != pSql) { tscError("sql object is NULL"); -// globalCode = TSDB_CODE_DISCONNECTED; tscQueueAsyncError(fp, param, TSDB_CODE_DISCONNECTED); return; } diff --git a/src/client/src/tscLocal.c b/src/client/src/tscLocal.c index 42b04d7a16..1c738ecb3d 100644 --- a/src/client/src/tscLocal.c +++ b/src/client/src/tscLocal.c @@ -343,10 +343,10 @@ static int tscBuildMetricTagProjectionResult(SSqlObj *pSql) { } static int tscBuildMetricTagSqlFunctionResult(SSqlObj *pSql) { - SSqlCmd *pCmd = &pSql->cmd; - SSqlRes *pRes = &pSql->res; +// SSqlCmd *pCmd = &pSql->cmd; +// SSqlRes *pRes = &pSql->res; - SQueryInfo* pQueryInfo = tscGetQueryInfoDetail(pCmd, 0); +// SQueryInfo* pQueryInfo = tscGetQueryInfoDetail(pCmd, 0); #if 0 SSuperTableMeta *pMetricMeta = tscGetMetaInfo(pQueryInfo, 0)->pMetricMeta; int32_t totalNumOfResults = 1; // count function only produce one result diff --git a/src/client/src/tscPrepare.c b/src/client/src/tscPrepare.c index 8b065fcf51..caa14d082b 100644 --- a/src/client/src/tscPrepare.c +++ b/src/client/src/tscPrepare.c @@ -467,14 +467,14 @@ static int insertStmtExecute(STscStmt* stmt) { TAOS_STMT* taos_stmt_init(TAOS* taos) { STscObj* pObj = (STscObj*)taos; if (pObj == NULL || pObj->signature != pObj) { - globalCode = TSDB_CODE_DISCONNECTED; + terrno = TSDB_CODE_DISCONNECTED; tscError("connection disconnected"); return NULL; } STscStmt* pStmt = calloc(1, sizeof(STscStmt)); if (pStmt == NULL) { - globalCode = TSDB_CODE_CLI_OUT_OF_MEMORY; + terrno = TSDB_CODE_CLI_OUT_OF_MEMORY; tscError("failed to allocate memory for statement"); return NULL; } @@ -482,7 +482,7 @@ TAOS_STMT* taos_stmt_init(TAOS* taos) { SSqlObj* pSql = calloc(1, sizeof(SSqlObj)); if (pSql == NULL) { free(pStmt); - globalCode = TSDB_CODE_CLI_OUT_OF_MEMORY; + terrno = TSDB_CODE_CLI_OUT_OF_MEMORY; tscError("failed to allocate memory for statement"); return NULL; } diff --git a/src/client/src/tscSchemaUtil.c b/src/client/src/tscSchemaUtil.c index 2492352284..b487d5d6db 100644 --- a/src/client/src/tscSchemaUtil.c +++ b/src/client/src/tscSchemaUtil.c @@ -131,7 +131,7 @@ bool isValidSchema(struct SSchema* pSchema, int32_t numOfCols) { SSchema* tscGetTableColumnSchema(const STableMeta* pTableMeta, int32_t startCol) { assert(pTableMeta != NULL); - SSchema* pSchema = pTableMeta->schema; + SSchema* pSchema = (SSchema*) pTableMeta->schema; #if 0 if (pTableMeta->tableType == TSDB_CHILD_TABLE) { assert (pTableMeta->pSTable != NULL); diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 87ddd704d2..c5c737f3a8 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -1420,10 +1420,10 @@ int tscProcessDescribeTableRsp(SSqlObj *pSql) { } int tscProcessTagRetrieveRsp(SSqlObj *pSql) { - SSqlCmd *pCmd = &pSql->cmd; +// SSqlCmd *pCmd = &pSql->cmd; - SQueryInfo * pQueryInfo = tscGetQueryInfoDetail(pCmd, pCmd->clauseIndex); - STableMetaInfo *pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); +// SQueryInfo * pQueryInfo = tscGetQueryInfoDetail(pCmd, pCmd->clauseIndex); +// STableMetaInfo *pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); int32_t numOfRes = 0; #if 0 @@ -1569,7 +1569,7 @@ int tscBuildMultiMeterMetaMsg(SSqlObj *pSql, SSqlInfo *pInfo) { return pCmd->payloadLen; } -static int32_t tscEstimateMetricMetaMsgSize(SSqlCmd *pCmd) { +static UNUSED_FUNC int32_t tscEstimateMetricMetaMsgSize(SSqlCmd *pCmd) { const int32_t defaultSize = minMsgSize() + sizeof(SSuperTableMetaMsg) + sizeof(SMgmtHead) + sizeof(int16_t) * TSDB_MAX_TAGS; SQueryInfo *pQueryInfo = tscGetQueryInfoDetail(pCmd, 0); @@ -1884,10 +1884,10 @@ int tscProcessTableMetaRsp(SSqlObj *pSql) { * |...... 1B 1B 4B **/ int tscProcessMultiMeterMetaRsp(SSqlObj *pSql) { - uint8_t ieType; - int32_t totalNum; - int32_t i; - +// uint8_t ieType; +// int32_t totalNum; +// int32_t i; +#if 0 char *rsp = pSql->res.pRsp; ieType = *rsp; @@ -1985,6 +1985,8 @@ int tscProcessMultiMeterMetaRsp(SSqlObj *pSql) { pSql->res.code = TSDB_CODE_SUCCESS; pSql->res.numOfTotal = i; tscTrace("%p load multi-metermeta resp complete num:%d", pSql, pSql->res.numOfTotal); +#endif + return TSDB_CODE_SUCCESS; } @@ -2467,7 +2469,7 @@ int tscGetSTableVgroupInfo(SSqlObj *pSql, int32_t clauseIndex) { SSqlCmd *pCmd = &pSql->cmd; //the query condition is serialized into pCmd->payload, we need to rebuild key for stable meta info in cache. - bool required = false; +// bool required = false; SQueryInfo *pQueryInfo = tscGetQueryInfoDetail(pCmd, clauseIndex); if (pQueryInfo->pTableMetaInfo[0]->vgroupIdList != NULL) { diff --git a/src/client/src/tscSql.c b/src/client/src/tscSql.c index a3cc785876..f6c1fee633 100644 --- a/src/client/src/tscSql.c +++ b/src/client/src/tscSql.c @@ -57,17 +57,17 @@ STscObj *taosConnectImpl(const char *ip, const char *user, const char *pass, con taos_init(); if (!validUserName(user)) { - globalCode = TSDB_CODE_INVALID_ACCT; + terrno = TSDB_CODE_INVALID_ACCT; return NULL; } if (!validPassword(pass)) { - globalCode = TSDB_CODE_INVALID_PASS; + terrno = TSDB_CODE_INVALID_PASS; return NULL; } if (tscInitRpc(user, pass) != 0) { - globalCode = TSDB_CODE_NETWORK_UNAVAIL; + terrno = TSDB_CODE_NETWORK_UNAVAIL; return NULL; } @@ -92,7 +92,7 @@ STscObj *taosConnectImpl(const char *ip, const char *user, const char *pass, con STscObj *pObj = (STscObj *)calloc(1, sizeof(STscObj)); if (NULL == pObj) { - globalCode = TSDB_CODE_CLI_OUT_OF_MEMORY; + terrno = TSDB_CODE_CLI_OUT_OF_MEMORY; return NULL; } @@ -107,7 +107,7 @@ STscObj *taosConnectImpl(const char *ip, const char *user, const char *pass, con /* db name is too long */ if (len > TSDB_DB_NAME_LEN) { free(pObj); - globalCode = TSDB_CODE_INVALID_DB; + terrno = TSDB_CODE_INVALID_DB; return NULL; } @@ -122,7 +122,7 @@ STscObj *taosConnectImpl(const char *ip, const char *user, const char *pass, con SSqlObj *pSql = (SSqlObj *)calloc(1, sizeof(SSqlObj)); if (NULL == pSql) { - globalCode = TSDB_CODE_CLI_OUT_OF_MEMORY; + terrno = TSDB_CODE_CLI_OUT_OF_MEMORY; free(pObj); return NULL; } @@ -140,7 +140,7 @@ STscObj *taosConnectImpl(const char *ip, const char *user, const char *pass, con pSql->cmd.command = TSDB_SQL_CONNECT; if (TSDB_CODE_SUCCESS != tscAllocPayload(&pSql->cmd, TSDB_DEFAULT_PAYLOAD_SIZE)) { - globalCode = TSDB_CODE_CLI_OUT_OF_MEMORY; + terrno = TSDB_CODE_CLI_OUT_OF_MEMORY; free(pSql); free(pObj); return NULL; @@ -303,7 +303,7 @@ int taos_query(TAOS *taos, const char *sqlstr) { TAOS_RES *taos_use_result(TAOS *taos) { STscObj *pObj = (STscObj *)taos; if (pObj == NULL || pObj->signature != pObj) { - globalCode = TSDB_CODE_DISCONNECTED; + terrno = TSDB_CODE_DISCONNECTED; return NULL; } @@ -535,11 +535,11 @@ static bool tscHashRemainDataInSubqueryResultSet(SSqlObj *pSql) { continue; } - SSqlRes *pRes1 = &pSql->pSubs[i]->res; +// SSqlRes *pRes1 = &pSql->pSubs[i]->res; SSqlCmd *pCmd1 = &pSql->pSubs[i]->cmd; SQueryInfo * pQueryInfo1 = tscGetQueryInfoDetail(pCmd1, pCmd1->clauseIndex); - STableMetaInfo *pMetaInfo = tscGetMetaInfo(pQueryInfo1, 0); +// STableMetaInfo *pMetaInfo = tscGetMetaInfo(pQueryInfo1, 0); assert(pQueryInfo1->numOfTables == 1); @@ -576,7 +576,7 @@ static bool tscHashRemainDataInSubqueryResultSet(SSqlObj *pSql) { return hasData; } -static void **tscBuildResFromSubqueries(SSqlObj *pSql) { +static UNUSED_FUNC void **tscBuildResFromSubqueries(SSqlObj *pSql) { SSqlRes *pRes = &pSql->res; while (1) { @@ -662,7 +662,7 @@ static void waitForRetrieveRsp(void *param, TAOS_RES *tres, int numOfRows) { TAOS_ROW taos_fetch_row(TAOS_RES *res) { SSqlObj *pSql = (SSqlObj *)res; if (pSql == NULL || pSql->signature != pSql) { - globalCode = TSDB_CODE_DISCONNECTED; + terrno = TSDB_CODE_DISCONNECTED; return NULL; } @@ -694,7 +694,7 @@ int taos_fetch_block(TAOS_RES *res, TAOS_ROW *rows) { int nRows = 0; if (pSql == NULL || pSql->signature != pSql) { - globalCode = TSDB_CODE_DISCONNECTED; + terrno = TSDB_CODE_DISCONNECTED; *rows = NULL; return 0; } @@ -733,7 +733,7 @@ int taos_select_db(TAOS *taos, const char *db) { STscObj *pObj = (STscObj *)taos; if (pObj == NULL || pObj->signature != pObj) { - globalCode = TSDB_CODE_DISCONNECTED; + terrno = TSDB_CODE_DISCONNECTED; return TSDB_CODE_DISCONNECTED; } @@ -1011,7 +1011,7 @@ int taos_print_row(char *str, TAOS_ROW row, TAOS_FIELD *fields, int num_fields) int taos_validate_sql(TAOS *taos, const char *sql) { STscObj *pObj = (STscObj *)taos; if (pObj == NULL || pObj->signature != pObj) { - globalCode = TSDB_CODE_DISCONNECTED; + terrno = TSDB_CODE_DISCONNECTED; return TSDB_CODE_DISCONNECTED; } @@ -1143,7 +1143,7 @@ int taos_load_table_info(TAOS *taos, const char *tableNameList) { STscObj *pObj = (STscObj *)taos; if (pObj == NULL || pObj->signature != pObj) { - globalCode = TSDB_CODE_DISCONNECTED; + terrno = TSDB_CODE_DISCONNECTED; return TSDB_CODE_DISCONNECTED; } diff --git a/src/client/src/tscSub.c b/src/client/src/tscSub.c index 9d172d4ea5..fd457a12dd 100644 --- a/src/client/src/tscSub.c +++ b/src/client/src/tscSub.c @@ -99,14 +99,14 @@ void tscUpdateSubscriptionProgress(void* sub, int64_t uid, TSKEY ts) { static SSub* tscCreateSubscription(STscObj* pObj, const char* topic, const char* sql) { SSub* pSub = calloc(1, sizeof(SSub)); if (pSub == NULL) { - globalCode = TSDB_CODE_CLI_OUT_OF_MEMORY; + terrno = TSDB_CODE_CLI_OUT_OF_MEMORY; tscError("failed to allocate memory for subscription"); return NULL; } SSqlObj* pSql = calloc(1, sizeof(SSqlObj)); if (pSql == NULL) { - globalCode = TSDB_CODE_CLI_OUT_OF_MEMORY; + terrno = TSDB_CODE_CLI_OUT_OF_MEMORY; tscError("failed to allocate SSqlObj for subscription"); goto failed; } @@ -309,7 +309,7 @@ void tscSaveSubscriptionProgress(void* sub) { TAOS_SUB *taos_subscribe(TAOS *taos, int restart, const char* topic, const char *sql, TAOS_SUBSCRIBE_CALLBACK fp, void *param, int interval) { STscObj* pObj = (STscObj*)taos; if (pObj == NULL || pObj->signature != pObj) { - globalCode = TSDB_CODE_DISCONNECTED; + terrno = TSDB_CODE_DISCONNECTED; tscError("connection disconnected"); return NULL; } diff --git a/src/client/src/tscSubquery.c b/src/client/src/tscSubquery.c index 1c57287b22..039cc966f0 100644 --- a/src/client/src/tscSubquery.c +++ b/src/client/src/tscSubquery.c @@ -279,7 +279,7 @@ int32_t tscLaunchSecondPhaseSubqueries(SSqlObj* pSql) { assert(pSubQueryInfo->exprsInfo.numOfExprs == 1); // ts_comp query only requires one resutl columns taos_free_result(pPrevSub); - SSqlObj *pNew = createSubqueryObj(pSql, (int16_t) i, tscJoinQueryCallback, TSDB_SQL_SELECT, pSupporter, NULL); + SSqlObj *pNew = createSubqueryObj(pSql, (int16_t) i, tscJoinQueryCallback, pSupporter, TSDB_SQL_SELECT, NULL); if (pNew == NULL) { tscDestroyJoinSupporter(pSupporter); success = false; @@ -538,7 +538,7 @@ static void joinRetrieveCallback(void* param, TAOS_RES* tres, int numOfRows) { } if (tscNonOrderedProjectionQueryOnSTable(pQueryInfo, 0) && numOfRows == 0) { - STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); +// STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); assert(pQueryInfo->numOfTables == 1); // for projection query, need to try next vnode if current vnode is exhausted @@ -606,7 +606,7 @@ void tscFetchDatablockFromSubquery(SSqlObj* pSql) { SSqlRes *pRes = &pSql->pSubs[i]->res; SQueryInfo* pQueryInfo = tscGetQueryInfoDetail(&pSql->pSubs[i]->cmd, 0); - STableMetaInfo *pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); +// STableMetaInfo *pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); if (tscNonOrderedProjectionQueryOnSTable(pQueryInfo, 0)) { // if (pRes->row >= pRes->numOfRows && pTableMetaInfo->vnodeIndex < pTableMetaInfo->pMetricMeta->numOfVnodes && @@ -834,7 +834,7 @@ int32_t tscLaunchJoinSubquery(SSqlObj *pSql, int16_t tableIndex, SJoinSubquerySu } } - SSqlObj *pNew = createSubqueryObj(pSql, tableIndex, tscJoinQueryCallback, TSDB_SQL_SELECT, pSupporter, NULL); + SSqlObj *pNew = createSubqueryObj(pSql, tableIndex, tscJoinQueryCallback, pSupporter, TSDB_SQL_SELECT, NULL); if (pNew == NULL) { return TSDB_CODE_CLI_OUT_OF_MEMORY; } @@ -1237,7 +1237,7 @@ static void tscAllDataRetrievedFromDnode(SRetrieveSupport *trsupport, SSqlObj* p SQueryInfo *pQueryInfo = tscGetQueryInfoDetail(&pSql->cmd, 0); // data in from current vnode is stored in cache and disk - uint32_t numOfRowsFromSubquery = trsupport->pExtMemBuffer[idx]->numOfTotalElems + trsupport->localBuffer->numOfElems; +// uint32_t numOfRowsFromSubquery = trsupport->pExtMemBuffer[idx]->numOfTotalElems + trsupport->localBuffer->numOfElems; // tscTrace("%p sub:%p all data retrieved from ip:%u,vid:%d, numOfRows:%d, orderOfSub:%d", pPObj, pSql, pSvd->ip, // pSvd->vnode, numOfRowsFromSubquery, idx); @@ -1333,7 +1333,7 @@ static void tscRetrieveFromDnodeCallBack(void *param, TAOS_RES *tres, int numOfR SSqlRes * pRes = &pSql->res; SQueryInfo *pQueryInfo = tscGetQueryInfoDetail(&pSql->cmd, 0); - STableMetaInfo *pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); +// STableMetaInfo *pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); // SVnodeSidList *vnodeInfo = tscGetVnodeSidList(pTableMetaInfo->pMetricMeta, idx); // SVnodeSidList *vnodeInfo = 0; @@ -1409,10 +1409,10 @@ void tscRetrieveDataRes(void *param, TAOS_RES *tres, int code) { SSqlObj* pParentSql = trsupport->pParentSqlObj; SSqlObj* pSql = (SSqlObj *)tres; - STableMetaInfo *pTableMetaInfo = tscGetTableMetaInfoFromCmd(&pSql->cmd, 0, 0); +// STableMetaInfo *pTableMetaInfo = tscGetTableMetaInfoFromCmd(&pSql->cmd, 0, 0); assert(pSql->cmd.numOfClause == 1 && pSql->cmd.pQueryInfo[0]->numOfTables == 1); - int32_t idx = pTableMetaInfo->vnodeIndex; +// int32_t idx = pTableMetaInfo->vnodeIndex; SVnodeSidList *vnodeInfo = NULL; SVnodeDesc * pSvd = NULL; @@ -1459,7 +1459,7 @@ void tscRetrieveDataRes(void *param, TAOS_RES *tres, int code) { pState->code = -TSDB_CODE_CLI_OUT_OF_MEMORY; trsupport->numOfRetry = MAX_NUM_OF_SUBQUERY_RETRY; } else { - SQueryInfo *pNewQueryInfo = tscGetQueryInfoDetail(&pNew->cmd, 0); +// SQueryInfo *pNewQueryInfo = tscGetQueryInfoDetail(&pNew->cmd, 0); // assert(pNewQueryInfo->pTableMetaInfo[0]->pTableMeta != NULL && pNewQueryInfo->pTableMetaInfo[0]->pMetricMeta != NULL); tscProcessSql(pNew); return; diff --git a/src/client/src/tscSystem.c b/src/client/src/tscSystem.c index ead8c09dec..ea4cf12f9d 100644 --- a/src/client/src/tscSystem.c +++ b/src/client/src/tscSystem.c @@ -33,7 +33,6 @@ void * pVMeterConn; void * pTscMgmtConn; void * pSlaveConn; void * tscCacheHandle; -int32_t globalCode = 0; int slaveIndex; void * tscTmr; void * tscQhandle; diff --git a/src/client/src/tscUtil.c b/src/client/src/tscUtil.c index a56d042ece..0294120ccb 100644 --- a/src/client/src/tscUtil.c +++ b/src/client/src/tscUtil.c @@ -819,7 +819,7 @@ void tscCloseTscObj(STscObj* pObj) { pObj->signature = NULL; SSqlObj* pSql = pObj->pSql; if (pSql) { - globalCode = pSql->res.code; + terrno = pSql->res.code; } taosTmrStopA(&(pObj->pTimer)); @@ -993,20 +993,6 @@ void tscFieldInfoCalOffset(SQueryInfo* pQueryInfo) { } void tscFieldInfoUpdateOffsetForInterResult(SQueryInfo* pQueryInfo) { -// SFieldInfo* pFieldInfo = &pQueryInfo->fieldsInfo; -// if (pFieldInfo->numOfOutputCols == 0) { -// return; -// } -// -// pFieldInfo->pOffset[0] = 0; -// -// /* -// * the retTypeLen is used to store the intermediate result length -// * for potential secondary merge exists -// */ -// for (int32_t i = 1; i < pFieldInfo->numOfOutputCols; ++i) { -// pFieldInfo->pOffset[i] = pFieldInfo->pOffset[i - 1] + tscSqlExprGet(pQueryInfo, i - 1)->resBytes; -// } SSqlExprInfo* pExprInfo = &pQueryInfo->exprsInfo; if (pExprInfo->numOfExprs == 0) { return; @@ -2167,7 +2153,7 @@ int16_t tscGetJoinTagColIndexByUid(STagCond* pTagCond, uint64_t uid) { bool tscIsUpdateQuery(STscObj* pObj) { if (pObj == NULL || pObj->signature != pObj) { - globalCode = TSDB_CODE_DISCONNECTED; + terrno = TSDB_CODE_DISCONNECTED; return TSDB_CODE_DISCONNECTED; } diff --git a/src/common/inc/name.h b/src/common/inc/name.h index 31a6d8fbeb..bafa003609 100644 --- a/src/common/inc/name.h +++ b/src/common/inc/name.h @@ -19,7 +19,7 @@ typedef struct SColumnInfoEx { void* pData; // the corresponding block data in memory } SColumnInfoEx; -int32_t extractTableName(const char *tableId, char *name); +void extractTableName(const char *tableId, char *name); char* extractDBName(const char *tableId, char *name); diff --git a/src/common/src/name.c b/src/common/src/name.c index cf1eaa2bf1..b0411d742c 100644 --- a/src/common/src/name.c +++ b/src/common/src/name.c @@ -24,11 +24,11 @@ static FORCE_INLINE size_t copy(char* dst, const char* src, char delimiter) { return len; } -int32_t extractTableName(const char* tableId, char* name) { +void extractTableName(const char* tableId, char* name) { size_t offset = strcspn(tableId, &TS_PATH_DELIMITER[0]); offset = strcspn(&tableId[offset], &TS_PATH_DELIMITER[0]); - return strncpy(name, &tableId[offset], TSDB_TABLE_NAME_LEN); + strncpy(name, &tableId[offset], TSDB_TABLE_NAME_LEN); // char* r = skipSegments(tableId, TS_PATH_DELIMITER[0], 2); // return copy(name, r, TS_PATH_DELIMITER[0]); diff --git a/src/mnode/src/mgmtTable.c b/src/mnode/src/mgmtTable.c index 6dbf81bad7..cf20c47646 100644 --- a/src/mnode/src/mgmtTable.c +++ b/src/mnode/src/mgmtTable.c @@ -1897,9 +1897,8 @@ static int32_t mgmtRetrieveShowTables(SShowObj *pShow, char *data, int32_t rows, } char tableName[TSDB_TABLE_NAME_LEN] = {0}; - memset(tableName, 0, tListLen(tableName)); - // pattern compare for meter name + // pattern compare for table name mgmtExtractTableName(pTable->info.tableId, tableName); if (pShow->payloadLen > 0 && diff --git a/src/query/inc/queryUtil.h b/src/query/inc/queryUtil.h index 06a716b750..677ddf6378 100644 --- a/src/query/inc/queryUtil.h +++ b/src/query/inc/queryUtil.h @@ -36,4 +36,6 @@ bool isWindowResClosed(SWindowResInfo *pWindowResInfo, int32_t slot); void createQueryResultInfo(SQuery *pQuery, SWindowResult *pResultRow, bool isSTableQuery, SPosInfo *posInfo); +char *getPosInResultPage(SQueryRuntimeEnv *pRuntimeEnv, int32_t columnIndex, SWindowResult *pResult); + #endif // TDENGINE_QUERYUTIL_H diff --git a/src/query/src/qparserImpl.c b/src/query/src/qparserImpl.c index a40b1bb8d2..f5763cfb45 100644 --- a/src/query/src/qparserImpl.c +++ b/src/query/src/qparserImpl.c @@ -900,174 +900,4 @@ void setDefaultCreateDbOption(SCreateDBInfo *pDBInfo) { pDBInfo->keep = NULL; memset(&pDBInfo->precision, 0, sizeof(SSQLToken)); -} - -static bool isExprLeafNode(tSQLExpr* pExpr) { - return (pExpr->pRight == NULL && pExpr->pLeft == NULL) && - (pExpr->nSQLOptr == TK_ID || (pExpr->nSQLOptr >= TK_BOOL && pExpr->nSQLOptr <= TK_NCHAR) || - pExpr->nSQLOptr == TK_SET); -} - -static bool isExprParentOfLeafNode(tSQLExpr* pExpr) { - return (pExpr->pLeft != NULL && pExpr->pRight != NULL) && - (isExprLeafNode(pExpr->pLeft) && isExprLeafNode(pExpr->pRight)); -} - -static int32_t tSQLExprNodeToString(tSQLExpr* pExpr, SStringBuilder* pBuilder) { - if (pExpr->nSQLOptr == TK_ID) { // column name -// strncpy(*str, pExpr->colInfo.z, pExpr->colInfo.n); -// *str += pExpr->colInfo.n; - - } else if (pExpr->nSQLOptr >= TK_BOOL && pExpr->nSQLOptr <= TK_STRING) { // value -// *str += tVariantToString(&pExpr->val, *str); -// taosStringBuilderAppendStringLen() - } else if (pExpr->nSQLOptr >= TK_COUNT && pExpr->nSQLOptr <= TK_AVG_IRATE) { - taosStringBuilderAppendStringLen(pBuilder, pExpr->operand.z, pExpr->operand.n); - } else { // not supported operation - assert(false); - } - - return TSDB_CODE_SUCCESS; -} - -static int32_t optrToString(tSQLExpr* pExpr, char** exprString) { - const char* le = "<="; - const char* ge = ">="; - const char* ne = "<>"; - const char* likeOptr = "LIKE"; - - switch (pExpr->nSQLOptr) { - case TK_LE: { - *(int16_t*)(*exprString) = *(int16_t*)le; - *exprString += 1; - break; - } - case TK_GE: { - *(int16_t*)(*exprString) = *(int16_t*)ge; - *exprString += 1; - break; - } - case TK_NE: { - *(int16_t*)(*exprString) = *(int16_t*)ne; - *exprString += 1; - break; - } - - case TK_LT: - *(*exprString) = '<'; - break; - case TK_GT: - *(*exprString) = '>'; - break; - case TK_EQ: - *(*exprString) = '='; - break; - case TK_PLUS: - *(*exprString) = '+'; - break; - case TK_MINUS: - *(*exprString) = '-'; - break; - case TK_STAR: - *(*exprString) = '*'; - break; - case TK_DIVIDE: - *(*exprString) = '/'; - break; - case TK_REM: - *(*exprString) = '%'; - break; - case TK_LIKE: { - int32_t len = sprintf(*exprString, " %s ", likeOptr); - *exprString += (len - 1); - break; - } - default: - return TSDB_CODE_INVALID_SQL; - } - - *exprString += 1; - return TSDB_CODE_SUCCESS; -} - -static int32_t tSQLExprLeafToBinary(tSQLExpr* pExpr, SStringBuilder* pBuilder) { - if (!isExprParentOfLeafNode(pExpr)) { - return TSDB_CODE_INVALID_SQL; - } - - tSQLExpr* pLeft = pExpr->pLeft; - tSQLExpr* pRight = pExpr->pRight; - -// if (addParentheses) { -// *(*output) = '('; -// *output += 1; -// } - - tSQLExprNodeToString(pLeft, pBuilder); - tSQLExprNodeToString(pRight, pBuilder); - - if (optrToString(pExpr, pBuilder) != TSDB_CODE_SUCCESS) { - return TSDB_CODE_INVALID_SQL; - } - -// if (addParentheses) { -// *(*output) = ')'; -// *output += 1; -// } - - return TSDB_CODE_SUCCESS; -} - -static void relToString(tSQLExpr* pExpr, SStringBuilder* pBuilder) { - assert(pExpr->nSQLOptr == TK_AND || pExpr->nSQLOptr == TK_OR); - - const char* or = "OR"; - const char*and = "AND"; - - // if (pQueryInfo->tagCond.relType == TSQL_STABLE_QTYPE_COND) { -// if (pExpr->nSQLOptr == TK_AND) { -// strcpy(*str, and); -// *str += strlen(and); -// } else { -// strcpy(*str, or); -// *str += strlen(or); -// } -} - -static int32_t doSQLExprToBinary(tSQLExpr* pExpr, SStringBuilder* pBuilder) { - if (pExpr == NULL) { - return TSDB_CODE_SUCCESS; - } - - if (!isExprParentOfLeafNode(pExpr)) { -// *(*str) = '('; -// *str += 1; - - int32_t ret = doSQLExprToBinary(pExpr->pLeft, pBuilder); - if (ret != TSDB_CODE_SUCCESS) { - return ret; - } - - ret = doSQLExprToBinary(pExpr->pRight, pBuilder); - if (ret != TSDB_CODE_SUCCESS) { - return ret; - } - - relToString(pExpr, pBuilder); - -// *(*str) = ')'; -// *str += 1; - - return ret; - } - - return tSQLExprLeafToBinary(pExpr, pBuilder); -} - -// post order seralize to binary data -int32_t tSQLExprToBinary(tSQLExpr* pExpr, SStringBuilder* pBuilder) { - assert(pExpr != NULL && pBuilder != NULL); - - - } \ No newline at end of file diff --git a/src/query/src/queryExecutor.c b/src/query/src/queryExecutor.c index 20697f3227..4c4014996e 100644 --- a/src/query/src/queryExecutor.c +++ b/src/query/src/queryExecutor.c @@ -47,7 +47,7 @@ #define SET_SUPPLEMENT_SCAN_FLAG(runtime) ((runtime)->scanFlag = SUPPLEMENTARY_SCAN) #define SET_MASTER_SCAN_FLAG(runtime) ((runtime)->scanFlag = MASTER_SCAN) -#define GET_QINFO_ADDR(x) ((char *)(x)-offsetof(SQInfo, runtimeEnv)) +#define GET_QINFO_ADDR(x) ((void*)((char *)(x)-offsetof(SQInfo, runtimeEnv))) #define GET_COL_DATA_POS(query, index, step) ((query)->pos + (index) * (step)) @@ -1140,13 +1140,13 @@ static int32_t rowwiseApplyAllFunctions(SQueryRuntimeEnv *pRuntimeEnv, SDataStat bool hasNull = hasNullValue(pQuery, k, pDataBlockInfo, pStatis, &pColStatis); char *dataBlock = getDataBlocks(pRuntimeEnv, &sasArray[k], k, pDataBlockInfo->size, pDataBlock); - setExecParams(pQuery, &pCtx[k], dataBlock, (char *)primaryKeyCol, pDataBlockInfo->size, functionId, pColStatis, + setExecParams(pQuery, &pCtx[k], dataBlock, primaryKeyCol, pDataBlockInfo->size, functionId, pColStatis, hasNull, &sasArray[k], pRuntimeEnv->scanFlag); } // set the input column data for (int32_t k = 0; k < pQuery->numOfFilterCols; ++k) { - SSingleColumnFilterInfo *pFilterInfo = &pQuery->pFilterInfo[k]; +// SSingleColumnFilterInfo *pFilterInfo = &pQuery->pFilterInfo[k]; assert(0); /* * NOTE: here the tbname/tags column cannot reach here, since it will never be a filter column, @@ -1465,7 +1465,7 @@ static int32_t setupQueryRuntimeEnv(SQueryRuntimeEnv *pRuntimeEnv, SColumnModel pRuntimeEnv->offset[0] = 0; for (int32_t i = 0; i < pQuery->numOfOutputCols; ++i) { SSqlFuncExprMsg *pSqlFuncMsg = &pQuery->pSelectExpr[i].pBase; - SColIndexEx * pColIndexEx = &pSqlFuncMsg->colInfo; +// SColIndexEx * pColIndexEx = &pSqlFuncMsg->colInfo; SQLFunctionCtx *pCtx = &pRuntimeEnv->pCtx[i]; pCtx->inputType = GET_COLUMN_TYPE(pQuery, i); @@ -1586,7 +1586,7 @@ static bool isQueryKilled(SQInfo *pQInfo) { #endif } -static bool setQueryKilled(SQInfo* pQInfo) { +static void setQueryKilled(SQInfo* pQInfo) { pQInfo->code = TSDB_CODE_QUERY_CANCELLED; } @@ -1738,6 +1738,7 @@ static UNUSED_FUNC bool doGetQueryPos(TSKEY key, SQInfo *pQInfo, SPointInterpoSu } } #endif + return true; } static UNUSED_FUNC bool doSetDataInfo(SQInfo *pQInfo, SPointInterpoSupporter *pPointInterpSupporter, void *pMeterObj, @@ -2924,11 +2925,11 @@ int32_t tableResultComparFn(const void *pLeft, const void *pRight, void *param) } int32_t mergeResultsToGroup(SQInfo *pQInfo) { - SQueryRuntimeEnv *pRuntimeEnv = &pQInfo->runtimeEnv; - SQuery * pQuery = pRuntimeEnv->pQuery; +// SQueryRuntimeEnv *pRuntimeEnv = &pQInfo->runtimeEnv; +// SQuery * pQuery = pRuntimeEnv->pQuery; - int64_t st = taosGetTimestampMs(); - int32_t ret = TSDB_CODE_SUCCESS; +// int64_t st = taosGetTimestampMs(); +// int32_t ret = TSDB_CODE_SUCCESS; // while (pQInfo->subgroupIdx < pQInfo->pSidSet->numOfSubSet) { // int32_t start = pQInfo->pSidSet->starterPos[pQInfo->subgroupIdx]; @@ -2994,7 +2995,7 @@ void copyResToQueryResultBuf(SQInfo *pQInfo, SQuery *pQuery) { for (int32_t i = 0; i < pQuery->numOfOutputCols; ++i) { int32_t bytes = pRuntimeEnv->pCtx[i].outputBytes; - char * pDest = pQuery->sdata[i]; + char * pDest = pQuery->sdata[i]->data; memcpy(pDest + offset * bytes, pData->data + pRuntimeEnv->offset[i] * pData->numOfElems, bytes * pData->numOfElems); @@ -3033,7 +3034,7 @@ int64_t getNumOfResultWindowRes(SQueryRuntimeEnv *pRuntimeEnv, SWindowResult *pW return maxOutput; } -int32_t doMergeMetersResultsToGroupRes(SQInfo *pQInfo, STableDataInfo *pTableDataInfo, int32_t start, int32_t end) { +UNUSED_FUNC int32_t doMergeMetersResultsToGroupRes(SQInfo *pQInfo, STableDataInfo *pTableDataInfo, int32_t start, int32_t end) { SQueryRuntimeEnv *pRuntimeEnv = &pQInfo->runtimeEnv; SQuery * pQuery = pQInfo->runtimeEnv.pQuery; @@ -3204,7 +3205,7 @@ int32_t flushFromResultBuf(SQInfo *pQInfo) { void resetMergeResultBuf(SQuery *pQuery, SQLFunctionCtx *pCtx, SResultInfo *pResultInfo) { for (int32_t k = 0; k < pQuery->numOfOutputCols; ++k) { - pCtx[k].aOutputBuf = pQuery->sdata[k] - pCtx[k].outputBytes; + pCtx[k].aOutputBuf = pQuery->sdata[k]->data - pCtx[k].outputBytes; pCtx[k].size = 1; pCtx[k].startOffset = 0; pCtx[k].resultInfo = &pResultInfo[k]; @@ -3561,7 +3562,7 @@ void scanAllDataBlocks(SQueryRuntimeEnv *pRuntimeEnv) { } // set the correct start position, and load the corresponding block in buffer for next round scan all data blocks. - int32_t ret = tsdbDataBlockSeek(pRuntimeEnv->pQueryHandle, pos); + /*int32_t ret =*/ tsdbDataBlockSeek(pRuntimeEnv->pQueryHandle, pos); status = pQuery->status; pRuntimeEnv->windowResInfo.curIndex = activeSlot; @@ -3582,7 +3583,7 @@ void scanAllDataBlocks(SQueryRuntimeEnv *pRuntimeEnv) { pQuery->window.skey = skey; pQuery->window.ekey = pQuery->lastKey - step; - tsdbpos_t current = tsdbDataBlockTell(pRuntimeEnv->pQueryHandle); + /*tsdbpos_t current =*/ tsdbDataBlockTell(pRuntimeEnv->pQueryHandle); doSingleMeterSupplementScan(pRuntimeEnv); @@ -3591,7 +3592,7 @@ void scanAllDataBlocks(SQueryRuntimeEnv *pRuntimeEnv) { pQuery->lastKey = lkey; pQuery->window.ekey = ekey; - STimeWindow win = {.skey = pQuery->window.skey, .ekey = pQuery->window.ekey}; +// STimeWindow win = {.skey = pQuery->window.skey, .ekey = pQuery->window.ekey}; // tsdbResetQuery(pRuntimeEnv->pQueryHandle, &win, current, pQuery->order.order); // tsdbNextDataBlock(pRuntimeEnv->pQueryHandle); } @@ -4020,7 +4021,7 @@ bool vnodeHasRemainResults(void *handle) { // query has completed if (Q_STATUS_EQUAL(pQuery->status, QUERY_COMPLETED)) { - TSKEY ekey = taosGetRevisedEndKey(pQuery->window.ekey, pQuery->order.order, pQuery->intervalTime, + /*TSKEY ekey =*/ taosGetRevisedEndKey(pQuery->window.ekey, pQuery->order.order, pQuery->intervalTime, pQuery->slidingTimeUnit, pQuery->precision); // int32_t numOfTotal = taosGetNumOfResultWithInterpo(pInterpoInfo, (TSKEY // *)pRuntimeEnv->pInterpoBuf[0]->data, @@ -4088,8 +4089,8 @@ static void doCopyQueryResultToMsg(SQInfo *pQInfo, int32_t numOfRows, char *data int32_t vnodeQueryResultInterpolate(SQInfo *pQInfo, tFilePage **pDst, tFilePage **pDataSrc, int32_t numOfRows, int32_t *numOfInterpo) { - SQueryRuntimeEnv *pRuntimeEnv = &pQInfo->runtimeEnv; - SQuery * pQuery = pRuntimeEnv->pQuery; +// SQueryRuntimeEnv *pRuntimeEnv = &pQInfo->runtimeEnv; +// SQuery * pQuery = pRuntimeEnv->pQuery; #if 0 while (1) { numOfRows = taosNumOfRemainPoints(&pRuntimeEnv->interpoInfo); @@ -4390,8 +4391,8 @@ static int64_t queryOnDataBlocks(SQInfo *pQInfo) { static bool multimeterMultioutputHelper(SQInfo *pQInfo, bool *dataInDisk, bool *dataInCache, int32_t index, int32_t start) { // STableIdInfo **pMeterSidExtInfo = pQInfo->pMeterSidExtInfo; - SQueryRuntimeEnv *pRuntimeEnv = &pQInfo->runtimeEnv; - SQuery * pQuery = &pRuntimeEnv->pQuery; +// SQueryRuntimeEnv *pRuntimeEnv = &pQInfo->runtimeEnv; +// SQuery * pQuery = pRuntimeEnv->pQuery; #if 0 setQueryStatus(pQuery, QUERY_NOT_COMPLETED); @@ -4438,7 +4439,7 @@ static bool multimeterMultioutputHelper(SQInfo *pQInfo, bool *dataInDisk, bool * #endif - initCtxOutputBuf(pRuntimeEnv); +// initCtxOutputBuf(pRuntimeEnv); return true; } @@ -5457,8 +5458,8 @@ static int32_t convertQueryMsg(SQueryTableMsg *pQueryMsg, SArray **pTableIdList, } static int32_t buildAirthmeticExprFromMsg(SSqlFunctionExpr *pExpr, SQueryTableMsg *pQueryMsg) { - SSqlBinaryExprInfo *pBinaryExprInfo = &pExpr->binExprInfo; - SColumnInfo * pColMsg = pQueryMsg->colList; +// SSqlBinaryExprInfo *pBinaryExprInfo = &pExpr->binExprInfo; +// SColumnInfo * pColMsg = pQueryMsg->colList; #if 0 tExprNode* pBinExpr = NULL; SSchema* pSchema = toSchema(pQueryMsg, pColMsg, pQueryMsg->numOfCols); @@ -5874,7 +5875,7 @@ static bool isValidQInfo(void *param) { * pQInfo->signature may be changed by another thread, so we assign value of signature * into local variable, then compare by using local variable */ - uint64_t sig = pQInfo->signature; + uint64_t sig = (uint64_t) pQInfo->signature; return (sig == (uint64_t)pQInfo); } diff --git a/src/query/tests/astTest.cpp b/src/query/tests/astTest.cpp index ac10cd2429..3b1f36e90f 100644 --- a/src/query/tests/astTest.cpp +++ b/src/query/tests/astTest.cpp @@ -9,6 +9,9 @@ #include "tsdb.h" #include "tskiplist.h" +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wwrite-strings" + typedef struct ResultObj { int32_t numOfResult; char * resultName[64]; diff --git a/src/query/tests/tsBufTest.cpp b/src/query/tests/tsBufTest.cpp index 2392bd00b5..ff58e2a974 100644 --- a/src/query/tests/tsBufTest.cpp +++ b/src/query/tests/tsBufTest.cpp @@ -158,7 +158,7 @@ void loadDataTest() { for (int32_t i = 0; i < numOfTags; ++i) { int64_t* list = createTsList(num, start, step); tsBufAppend(pTSBuf, j, i, (const char*)list, num * sizeof(int64_t)); - printf("%d - %lld\n", i, list[0]); + printf("%d - %" PRIu64 "\n", i, list[0]); free(list); start += step * num; @@ -195,7 +195,7 @@ void loadDataTest() { tsBufResetPos(pNewBuf); int64_t s = taosGetTimestampUs(); - printf("start:%lld\n", s); + printf("start:%" PRIu64 "\n", s); int32_t x = 0; while (tsBufNextPos(pNewBuf)) { @@ -204,11 +204,11 @@ void loadDataTest() { break; } - // printf("%d-%lld-%lld\n", elem.vnode, elem.tag, elem.ts); + // printf("%d-%" PRIu64 "-%" PRIu64 "\n", elem.vnode, elem.tag, elem.ts); } int64_t e = taosGetTimestampUs(); - printf("end:%lld, elapsed:%lld, total obj:%d\n", e, e - s, x); + printf("end:%" PRIu64 ", elapsed:%" PRIu64 ", total obj:%d\n", e, e - s, x); } void randomIncTsTest() {} @@ -229,14 +229,14 @@ void TSTraverse() { for (int32_t i = 0; i < numOfTags; ++i) { int64_t* list = createTsList(num, start, step); tsBufAppend(pTSBuf, j, i, (const char*)list, num * sizeof(int64_t)); - printf("%d - %d - %lld, %lld\n", j, i, list[0], list[num - 1]); + printf("%d - %d - %" PRIu64 ", %" PRIu64 "\n", j, i, list[0], list[num - 1]); free(list); start += step * num; list = createTsList(num, start, step); tsBufAppend(pTSBuf, j, i, (const char*)list, num * sizeof(int64_t)); - printf("%d - %d - %lld, %lld\n", j, i, list[0], list[num - 1]); + printf("%d - %d - %" PRIu64 ", %" PRIu64 "\n", j, i, list[0], list[num - 1]); free(list); start += step * num; @@ -250,7 +250,7 @@ void TSTraverse() { //////////////////////////////////////////////////////////////////////////////////////// // reverse traverse int64_t s = taosGetTimestampUs(); - printf("start:%lld\n", s); + printf("start:%" PRIu64 "\n", s); pTSBuf->cur.order = TSQL_SO_DESC; @@ -258,7 +258,7 @@ void TSTraverse() { int32_t x = 0; while (tsBufNextPos(pTSBuf)) { STSElem elem = tsBufGetElem(pTSBuf); - // printf("%d-%lld-%lld\n", elem.vnode, elem.tag, elem.ts); + // printf("%d-%" PRIu64 "-%" PRIu64 "\n", elem.vnode, elem.tag, elem.ts); } // specify the data block with vnode and tags value @@ -273,7 +273,7 @@ void TSTraverse() { int32_t totalOutput = 10; while (1) { STSElem elem = tsBufGetElem(pTSBuf); - printf("%d-%lld-%lld\n", elem.vnode, elem.tag, elem.ts); + printf("%d-%" PRIu64 "-%" PRIu64 "\n", elem.vnode, elem.tag, elem.ts); if (!tsBufNextPos(pTSBuf)) { break; @@ -303,7 +303,7 @@ void TSTraverse() { // complete forwards traverse while (tsBufNextPos(pTSBuf)) { STSElem elem = tsBufGetElem(pTSBuf); - // printf("%d-%lld-%lld\n", elem.vnode, elem.tag, elem.ts); + // printf("%d-%" PRIu64 "-%" PRIu64 "\n", elem.vnode, elem.tag, elem.ts); } // specify the data block with vnode and tags value @@ -318,7 +318,7 @@ void TSTraverse() { totalOutput = 10; while (1) { STSElem elem = tsBufGetElem(pTSBuf); - printf("%d-%lld-%lld\n", elem.vnode, elem.tag, elem.ts); + printf("%d-%" PRIu64 "-%" PRIu64 "\n", elem.vnode, elem.tag, elem.ts); if (!tsBufNextPos(pTSBuf)) { break; @@ -429,7 +429,7 @@ void mergeIdenticalVnodeBufferTest() { STSElem elem = tsBufGetElem(pTSBuf1); EXPECT_EQ(elem.vnode, 12); - printf("%d-%lld-%lld\n", elem.vnode, elem.tag, elem.ts); + printf("%d-%" PRIu64 "-%" PRIu64 "\n", elem.vnode, elem.tag, elem.ts); } tsBufDestory(pTSBuf1); diff --git a/src/query/tests/unitTest.cpp b/src/query/tests/unitTest.cpp index c7520c90f9..df28a3e4d1 100644 --- a/src/query/tests/unitTest.cpp +++ b/src/query/tests/unitTest.cpp @@ -11,6 +11,9 @@ #include "tvariant.h" #include "ttokendef.h" +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wwrite-strings" + namespace { int32_t testValidateName(char* name) { SSQLToken token = {0}; diff --git a/src/util/inc/tcache.h b/src/util/inc/tcache.h index 36635fff30..a29e720e67 100644 --- a/src/util/inc/tcache.h +++ b/src/util/inc/tcache.h @@ -98,7 +98,7 @@ SCacheObj *taosCacheInit(void *tmrCtrl, int64_t refreshTimeInSeconds); * @param keepTime survival time in second * @return cached element */ -void *taosCachePut(SCacheObj *pCacheObj, char *key, void *pData, size_t dataSize, int keepTimeInSeconds); +void *taosCachePut(SCacheObj *pCacheObj, const char *key, const void *pData, size_t dataSize, int keepTimeInSeconds); /** * get data from cache diff --git a/src/util/src/tcache.c b/src/util/src/tcache.c index 5f04765f01..8bfec97032 100644 --- a/src/util/src/tcache.c +++ b/src/util/src/tcache.c @@ -233,8 +233,8 @@ static FORCE_INLINE void taosCacheMoveToTrash(SCacheObj *pCacheObj, SCacheDataNo * @param dataSize * @return */ -static SCacheDataNode *taosUpdateCacheImpl(SCacheObj *pCacheObj, SCacheDataNode *pNode, char *key, int32_t keyLen, - void *pData, uint32_t dataSize, uint64_t duration) { +static SCacheDataNode *taosUpdateCacheImpl(SCacheObj *pCacheObj, SCacheDataNode *pNode, const char *key, int32_t keyLen, + const void *pData, uint32_t dataSize, uint64_t duration) { SCacheDataNode *pNewNode = NULL; // only a node is not referenced by any other object, in-place update it @@ -288,7 +288,7 @@ static SCacheDataNode *taosUpdateCacheImpl(SCacheObj *pCacheObj, SCacheDataNode * @param pNode * @return */ -static FORCE_INLINE SCacheDataNode *taosAddToCacheImpl(SCacheObj *pCacheObj, char *key, size_t keyLen, const void *pData, +static FORCE_INLINE SCacheDataNode *taosAddToCacheImpl(SCacheObj *pCacheObj, const char *key, size_t keyLen, const void *pData, size_t dataSize, uint64_t duration) { SCacheDataNode *pNode = taosCreateHashNode(key, keyLen, pData, dataSize, duration); if (pNode == NULL) { @@ -401,7 +401,7 @@ SCacheObj *taosCacheInit(void *tmrCtrl, int64_t refreshTime) { return pCacheObj; } -void *taosCachePut(SCacheObj *pCacheObj, char *key, void *pData, size_t dataSize, int duration) { +void *taosCachePut(SCacheObj *pCacheObj, const char *key, const void *pData, size_t dataSize, int duration) { SCacheDataNode *pNode; if (pCacheObj == NULL || pCacheObj->pHashTable == NULL) { diff --git a/src/util/src/tutil.c b/src/util/src/tutil.c index 4c689a5bcd..cadb2e706c 100644 --- a/src/util/src/tutil.c +++ b/src/util/src/tutil.c @@ -645,7 +645,7 @@ void * taosbsearch(const void *key, const void *base, size_t nmemb, size_t size, } } - if ((*compar)(key, elePtrAt(base, size, idx) < 0)) { + if ((*compar)(key, elePtrAt(base, size, idx)) < 0) { return elePtrAt(base, size, idx); } else { if (idx + 1 > nmemb - 1) { diff --git a/src/util/tests/cacheTest.cpp b/src/util/tests/cacheTest.cpp index 1902fef4b6..13fb7d7afb 100644 --- a/src/util/tests/cacheTest.cpp +++ b/src/util/tests/cacheTest.cpp @@ -22,15 +22,15 @@ TEST(testCase, client_cache_test) { void* tscTmr = taosTmrInit (tsMaxMgmtConnections*2, 200, 6000, "TSC"); SCacheObj* tscCacheHandle = taosCacheInit(tscTmr, REFRESH_TIME_IN_SEC); - char* key1 = "test1"; - char* data1 = "test11"; + const char* key1 = "test1"; + char data1[] = "test11"; char* cachedObj = (char*) taosCachePut(tscCacheHandle, key1, data1, strlen(data1), 1); sleep(REFRESH_TIME_IN_SEC+1); printf("obj is still valid: %s\n", cachedObj); - char* data2 = "test22"; + char data2[] = "test22"; taosCacheRelease(tscCacheHandle, (void**) &cachedObj, false); /* the object is cleared by cache clean operation */ @@ -43,8 +43,8 @@ TEST(testCase, client_cache_test) { getchar(); - char* key3 = "test2"; - char* data3 = "kkkkkkk"; + const char* key3 = "test2"; + const char* data3 = "kkkkkkk"; char* cachedObj2 = (char*) taosCachePut(tscCacheHandle, key3, data3, strlen(data3), 1); printf("%s\n", cachedObj2); @@ -55,11 +55,11 @@ TEST(testCase, client_cache_test) { char* d = (char*) taosCacheAcquireByName(tscCacheHandle, key3); // assert(d == NULL); - char* key5 = "test5"; - char* data5 = "data5kkkkk"; + char key5[] = "test5"; + char data5[] = "data5kkkkk"; cachedObj2 = (char*) taosCachePut(tscCacheHandle, key5, data5, strlen(data5), 20); - char* data6= "new Data after updated"; + const char* data6= "new Data after updated"; taosCacheRelease(tscCacheHandle, (void**) &cachedObj2, false); cachedObj2 = (char*) taosCachePut(tscCacheHandle, key5, data6, strlen(data6), 20); @@ -67,7 +67,7 @@ TEST(testCase, client_cache_test) { taosCacheRelease(tscCacheHandle, (void**) &cachedObj2, true); - char* data7 = "add call update procedure"; + const char* data7 = "add call update procedure"; cachedObj2 = (char*) taosCachePut(tscCacheHandle, key5, data7, strlen(data7), 20); printf("%s\n=======================================\n\n", cachedObj2); @@ -76,8 +76,8 @@ TEST(testCase, client_cache_test) { taosCacheRelease(tscCacheHandle, (void**) &cachedObj2, true); taosCacheRelease(tscCacheHandle, (void**) &cc, false); - char* data8 = "ttft"; - char* key6 = "key6"; + const char* data8 = "ttft"; + const char* key6 = "key6"; char* ft = (char*) taosCachePut(tscCacheHandle, key6, data8, strlen(data8), 20); taosCacheRelease(tscCacheHandle, (void**) &ft, false); @@ -86,7 +86,7 @@ TEST(testCase, client_cache_test) { * 140ns */ uint64_t startTime = taosGetTimestampUs(); - printf("Cache Performance Test\nstart time:%lld\n", startTime); + printf("Cache Performance Test\nstart time:%" PRIu64 "\n", startTime); for(int32_t i=0; i<1000; ++i) { char* dd = (char*) taosCacheAcquireByName(tscCacheHandle, key6); if (dd != NULL) { @@ -101,7 +101,7 @@ TEST(testCase, client_cache_test) { uint64_t endTime = taosGetTimestampUs(); int64_t el = endTime - startTime; - printf("End of Test, %lld\nTotal Elapsed Time:%lld us.avg:%f us\n", endTime, el, el/1000.0); + printf("End of Test, %" PRIu64 "\nTotal Elapsed Time:%" PRIu64 " us.avg:%f us\n", endTime, el, el/1000.0); taosCacheCleanup(tscCacheHandle); } @@ -125,7 +125,7 @@ TEST(testCase, cache_resize_test) { } uint64_t endTime = taosGetTimestampUs(); - printf("add %d object cost:%lld us, avg:%f us\n", num, endTime - startTime, (endTime-startTime)/(double)num); + printf("add %d object cost:%" PRIu64 " us, avg:%f us\n", num, endTime - startTime, (endTime-startTime)/(double)num); startTime = taosGetTimestampUs(); for(int32_t i = 0; i < num; ++i) { @@ -134,7 +134,7 @@ TEST(testCase, cache_resize_test) { assert(k != 0); } endTime = taosGetTimestampUs(); - printf("retrieve %d object cost:%lld us,avg:%f\n", num, endTime - startTime, (endTime - startTime)/(double)num); + printf("retrieve %d object cost:%" PRIu64 " us,avg:%f\n", num, endTime - startTime, (endTime - startTime)/(double)num); taosCacheCleanup(pCache); taosMsleep(20000); diff --git a/src/util/tests/skiplistTest.cpp b/src/util/tests/skiplistTest.cpp index c009231874..9e690c3924 100644 --- a/src/util/tests/skiplistTest.cpp +++ b/src/util/tests/skiplistTest.cpp @@ -175,7 +175,7 @@ void stringKeySkiplistTest() { } int64_t e = taosGetTimestampUs(); - printf("elapsed time:%lld us to insert %d data, avg:%f us\n", (e - s), total, (double)(e - s) / total); + printf("elapsed time:%" PRIu64 " us to insert %d data, avg:%f us\n", (e - s), total, (double)(e - s) / total); printf("level two------------------\n"); tSkipListPrint(pSkipList, 1); @@ -237,13 +237,13 @@ void skiplistPerformanceTest() { int64_t cur = taosGetTimestampMs(); int64_t elapsed = cur - prev; - printf("add %d, elapsed time: %lld ms, avg elapsed:%f ms, total:%d\n", 100000, elapsed, elapsed / 100000.0, i); + printf("add %d, elapsed time: %" PRIu64 " ms, avg elapsed:%f ms, total:%d\n", 100000, elapsed, elapsed / 100000.0, i); prev = cur; } } int64_t e = taosGetTimestampMs(); - printf("total:%lld ms, avg:%f\n", e - s, (e - s) / (double)size); + printf("total:%" PRIu64 " ms, avg:%f\n", e - s, (e - s) / (double)size); printf("max level of skiplist:%d, actually level:%d\n ", pSkipList->maxLevel, pSkipList->level); assert(tSkipListGetSize(pSkipList) == size); diff --git a/src/vnode/tsdb/src/tsdbMain.c b/src/vnode/tsdb/src/tsdbMain.c index 5be2f11b15..88ede6aabd 100644 --- a/src/vnode/tsdb/src/tsdbMain.c +++ b/src/vnode/tsdb/src/tsdbMain.c @@ -183,7 +183,7 @@ tsdb_repo_t *tsdbOpenRepo(char *tsdbDir) { return NULL; } - STsdbRepo *pRepo = (STsdbRepo *)malloc(sizeof(STsdbRepo)); + STsdbRepo *pRepo = (STsdbRepo *)calloc(1, sizeof(STsdbRepo)); if (pRepo == NULL) { return NULL; } diff --git a/src/vnode/tsdb/src/tsdbRead.c b/src/vnode/tsdb/src/tsdbRead.c index a625770160..30d0e94950 100644 --- a/src/vnode/tsdb/src/tsdbRead.c +++ b/src/vnode/tsdb/src/tsdbRead.c @@ -301,6 +301,7 @@ tsdb_query_handle_t *tsdbQueryByTableId(tsdb_repo_t* tsdb, STsdbQueryCond *pCond .pCompInfo = calloc(1, 1024), }; + assert(info.pTableObj != NULL); taosArrayPush(pQueryHandle->pTableCheckInfo, &info); } @@ -1008,17 +1009,21 @@ SArray *tsdbRetrieveDataBlock(tsdb_query_handle_t *pQueryHandle, SArray *pIdList } } -int32_t tsdbResetQuery(tsdb_query_handle_t *pQueryHandle, STimeWindow *window, tsdbpos_t position, int16_t order) {} +int32_t tsdbResetQuery(tsdb_query_handle_t *pQueryHandle, STimeWindow *window, tsdbpos_t position, int16_t order) { + return 0; +} -int32_t tsdbDataBlockSeek(tsdb_query_handle_t *pQueryHandle, tsdbpos_t pos) {} +int32_t tsdbDataBlockSeek(tsdb_query_handle_t *pQueryHandle, tsdbpos_t pos) { return 0;} tsdbpos_t tsdbDataBlockTell(tsdb_query_handle_t *pQueryHandle) { return NULL; } -SArray *tsdbRetrieveDataRow(tsdb_query_handle_t *pQueryHandle, SArray *pIdList, SQueryRowCond *pCond) {} +SArray *tsdbRetrieveDataRow(tsdb_query_handle_t *pQueryHandle, SArray *pIdList, SQueryRowCond *pCond) { return NULL;} -tsdb_query_handle_t *tsdbQueryFromTagConds(STsdbQueryCond *pCond, int16_t stableId, const char *pTagFilterStr) {} +tsdb_query_handle_t *tsdbQueryFromTagConds(STsdbQueryCond *pCond, int16_t stableId, const char *pTagFilterStr) { + return NULL; +} -SArray *tsdbGetTableList(tsdb_query_handle_t *pQueryHandle) {} +SArray *tsdbGetTableList(tsdb_query_handle_t *pQueryHandle) { return NULL; } static SArray* createTableIdArrayList(STsdbRepo* tsdb, int64_t uid) { STable* pTable = tsdbGetTableByUid(tsdbGetMeta(tsdb), uid); @@ -1048,7 +1053,7 @@ typedef struct SSyntaxTreeFilterSupporter { * convert the result pointer to STabObj instead of tSkipListNode * @param pRes */ -static void tansformQueryResult(SArray* pRes) { +static UNUSED_FUNC void tansformQueryResult(SArray* pRes) { if (pRes == NULL || taosArrayGetSize(pRes) == 0) { return; } @@ -1300,10 +1305,10 @@ bool tSkipListNodeFilterCallback(const void* pNode, void* param) { } static int32_t doQueryTableList(STable* pSTable, SArray* pRes, const char* pCond) { - STColumn* stcol = schemaColAt(pSTable->tagSchema, 0); +// STColumn* stcol = schemaColAt(pSTable->tagSchema, 0); tExprNode* pExpr = NULL; - tSQLBinaryExprFromString(&pExpr, stcol, schemaNCols(pSTable->tagSchema), pCond, strlen(pCond)); +// tSQLBinaryExprFromString(&pExpr, stcol, schemaNCols(pSTable->tagSchema), (char*) pCond, strlen(pCond)); // failed to build expression, no result, return immediately if (pExpr == NULL) { @@ -1314,18 +1319,18 @@ static int32_t doQueryTableList(STable* pSTable, SArray* pRes, const char* pCond } // query according to the binary expression - SSyntaxTreeFilterSupporter s = {.pTagSchema = stcol, .numOfTags = schemaNCols(pSTable->tagSchema)}; - - SBinaryFilterSupp supp = { - .fp = (__result_filter_fn_t)tSkipListNodeFilterCallback, - .setupInfoFn = (__do_filter_suppl_fn_t)filterPrepare, - .pExtInfo = &s - }; - - tSQLBinaryExprTraverse(pExpr, pSTable->pIndex, pRes, &supp); - tExprTreeDestroy(&pExpr, tSQLListTraverseDestroyInfo); - - tansformQueryResult(pRes); +// SSyntaxTreeFilterSupporter s = {.pTagSchema = stcol, .numOfTags = schemaNCols(pSTable->tagSchema)}; +// +// SBinaryFilterSupp supp = { +// .fp = (__result_filter_fn_t)tSkipListNodeFilterCallback, +// .setupInfoFn = (__do_filter_suppl_fn_t)filterPrepare, +// .pExtInfo = &s +// }; +// +// tSQLBinaryExprTraverse(pExpr, pSTable->pIndex, pRes, &supp); +// tExprTreeDestroy(&pExpr, tSQLListTraverseDestroyInfo); +// +// tansformQueryResult(pRes); return TSDB_CODE_SUCCESS; } diff --git a/tests/examples/c/demo.c b/tests/examples/c/demo.c index b621781a3c..853a949162 100644 --- a/tests/examples/c/demo.c +++ b/tests/examples/c/demo.c @@ -28,47 +28,23 @@ int main(int argc, char *argv[]) { TAOS * taos; char qstr[1024]; TAOS_RES *result; - + // connect to server if (argc < 2) { printf("please input server-ip \n"); return 0; } - - taos_options(TSDB_OPTION_CONFIGDIR, "~/first/cfg"); + // init TAOS taos_init(); - + taos = taos_connect(argv[1], "root", "taosdata", NULL, 0); if (taos == NULL) { printf("failed to connect to server, reason:%s\n", taos_errstr(taos)); exit(1); } printf("success to connect to server\n"); - -// int32_t code = taos_query(taos, "insert into test.tm2 values(now, 1)(now+1m,2)(now+2m,3) (now+3m, 4) (now+4m, 5);"); - int32_t code = taos_query(taos, "insert into test.tm2 values(now, 99)"); - if (code != 0) { - printf("failed to execute query, reason:%s\n", taos_errstr(taos)); - } - TAOS_RES* res = taos_use_result(taos); - TAOS_ROW row = NULL; - char buf[512] = {0}; - - int32_t numOfFields = taos_num_fields(res); - TAOS_FIELD* pFields = taos_fetch_fields(res); - - while((row = taos_fetch_row(res)) != NULL) { - taos_print_row(buf, row, pFields, numOfFields); - printf("%s\n", buf); - memset(buf, 0, 512); - } - - taos_close(taos); - - getchar(); - return 0; taos_query(taos, "drop database demo"); if (taos_query(taos, "create database demo") != 0) { @@ -76,19 +52,19 @@ int main(int argc, char *argv[]) { exit(1); } printf("success to create database\n"); - + taos_query(taos, "use demo"); - + // create table if (taos_query(taos, "create table m1 (ts timestamp, speed int)") != 0) { printf("failed to create table, reason:%s\n", taos_errstr(taos)); exit(1); } printf("success to create table\n"); - + // sleep for one second to make sure table is created on data node // taosMsleep(1000); - + // insert 10 records int i = 0; for (i = 0; i < 10; ++i) { @@ -99,27 +75,27 @@ int main(int argc, char *argv[]) { //sleep(1); } printf("success to insert rows, total %d rows\n", i); - + // query the records sprintf(qstr, "SELECT * FROM m1"); if (taos_query(taos, qstr) != 0) { printf("failed to select, reason:%s\n", taos_errstr(taos)); exit(1); } - + result = taos_use_result(taos); - + if (result == NULL) { printf("failed to get result, reason:%s\n", taos_errstr(taos)); exit(1); } - -// TAOS_ROW row; + + TAOS_ROW row; int rows = 0; int num_fields = taos_field_count(taos); TAOS_FIELD *fields = taos_fetch_fields(result); char temp[256]; - + printf("select * from table, result:\n"); // fetch the records row by row while ((row = taos_fetch_row(result))) { @@ -127,7 +103,7 @@ int main(int argc, char *argv[]) { taos_print_row(temp, row, fields, num_fields); printf("%s\n", temp); } - + taos_free_result(result); printf("====demo end====\n\n"); return getchar();