diff --git a/src/client/inc/tscUtil.h b/src/client/inc/tscUtil.h index 48afd1802cdf20b9bb4e59317787f045644d44d4..c5c634a9c5aaf9a028144dd9a1597626385b727e 100644 --- a/src/client/inc/tscUtil.h +++ b/src/client/inc/tscUtil.h @@ -55,7 +55,7 @@ SDataBlockList* tscCreateBlockArrayList(); void* tscDestroyBlockArrayList(SDataBlockList* pList); int32_t tscCopyDataBlockToPayload(SSqlObj* pSql, STableDataBlocks* pDataBlock); void tscFreeUnusedDataBlocks(SDataBlockList* pList); -void tscMergeTableDataBlocks(SSqlCmd* pCmd, SDataBlockList* pDataList); +void tscMergeTableDataBlocks(SSqlObj* pSql, SDataBlockList* pDataList); STableDataBlocks* tscGetDataBlockFromList(void* pHashList, SDataBlockList* pDataBlockList, int64_t id, int32_t size, int32_t startOffset, int32_t rowSize, char* tableId); STableDataBlocks* tscCreateDataBlockEx(size_t size, int32_t rowSize, int32_t startOffset, char* name); @@ -140,7 +140,7 @@ void tscCleanSqlCmd(SSqlCmd* pCmd); bool tscShouldFreeAsyncSqlObj(SSqlObj* pSql); void tscDoQuery(SSqlObj* pSql); -int32_t sortRemoveDuplicates(STableDataBlocks* dataBuf, int32_t numOfRows); +void sortRemoveDuplicates(STableDataBlocks* dataBuf); #ifdef __cplusplus } #endif diff --git a/src/client/src/tscParseInsert.c b/src/client/src/tscParseInsert.c index 44a254f1bd018415e158912950b17388af5d9633..7dec7280f83d2ccf238381cf232e17bede6c960d 100644 --- a/src/client/src/tscParseInsert.c +++ b/src/client/src/tscParseInsert.c @@ -518,18 +518,20 @@ int32_t tscAllocateMemIfNeed(STableDataBlocks *pDataBlock, int32_t rowSize) { const int factor = 5; // expand the allocated size - while (remain < rowSize * factor) { - pDataBlock->nAllocSize = (uint32_t) (pDataBlock->nAllocSize * 1.5); - remain = pDataBlock->nAllocSize - pDataBlock->size; - } + if (remain < rowSize * factor) { + while (remain < rowSize * factor) { + pDataBlock->nAllocSize = (uint32_t) (pDataBlock->nAllocSize * 1.5); + remain = pDataBlock->nAllocSize - pDataBlock->size; + } - char *tmp = realloc(pDataBlock->pData, (size_t)pDataBlock->nAllocSize); - if (tmp != NULL) { - pDataBlock->pData = tmp; - memset(pDataBlock->pData + pDataBlock->size, 0, pDataBlock->nAllocSize - pDataBlock->size); - } else { - assert(false); - // do nothing + char *tmp = realloc(pDataBlock->pData, (size_t)pDataBlock->nAllocSize); + if (tmp != NULL) { + pDataBlock->pData = tmp; + memset(pDataBlock->pData + pDataBlock->size, 0, pDataBlock->nAllocSize - pDataBlock->size); + } else { + assert(false); + // do nothing + } } return (int32_t)(pDataBlock->nAllocSize - pDataBlock->size) / rowSize; @@ -542,16 +544,21 @@ static void tsSetBlockInfo(SShellSubmitBlock *pBlocks, const SMeterMeta *pMeterM pBlocks->numOfRows += numOfRows; } -int32_t sortRemoveDuplicates(STableDataBlocks *dataBuf, int32_t numOfRows) { - // data block is disordered, sort it in ascending order +// data block is disordered, sort it in ascending order +void sortRemoveDuplicates(STableDataBlocks *dataBuf) { + SShellSubmitBlock* pBlocks = (SShellSubmitBlock*)dataBuf->pData; + + // size is less than the total size, since duplicated rows may be removed yet. + assert(pBlocks->numOfRows * dataBuf->rowSize + sizeof(SShellSubmitBlock) == dataBuf->size); + if (!dataBuf->ordered) { - char *pBlockData = dataBuf->pData + sizeof(SShellSubmitBlock); - qsort(pBlockData, numOfRows, dataBuf->rowSize, rowDataCompar); + char *pBlockData = pBlocks->payLoad; + qsort(pBlockData, pBlocks->numOfRows, dataBuf->rowSize, rowDataCompar); int32_t i = 0; int32_t j = 1; - while (j < numOfRows) { + while (j < pBlocks->numOfRows) { TSKEY ti = *(TSKEY *)(pBlockData + dataBuf->rowSize * i); TSKEY tj = *(TSKEY *)(pBlockData + dataBuf->rowSize * j); @@ -568,11 +575,11 @@ int32_t sortRemoveDuplicates(STableDataBlocks *dataBuf, int32_t numOfRows) { ++j; } - numOfRows = i + 1; dataBuf->ordered = true; - } - return numOfRows; + pBlocks->numOfRows = i + 1; + dataBuf->size = sizeof(SShellSubmitBlock) + dataBuf->rowSize*pBlocks->numOfRows; + } } static int32_t doParseInsertStatement(SSqlObj *pSql, void *pTableHashList, char **str, SParsedDataColInfo *spd, @@ -998,7 +1005,7 @@ int tsParseInsertStatement(SSqlObj *pSql, char *str, char *acct, char *db) { // submit to more than one vnode if (pCmd->pDataBlocks->nSize > 0) { // merge according to vgid - tscMergeTableDataBlocks(pCmd, pCmd->pDataBlocks); + tscMergeTableDataBlocks(pSql, pCmd->pDataBlocks); STableDataBlocks *pDataBlock = pCmd->pDataBlocks->pData[0]; if ((code = tscCopyDataBlockToPayload(pSql, pDataBlock)) != TSDB_CODE_SUCCESS) { @@ -1033,8 +1040,6 @@ int tsParseInsertSql(SSqlObj *pSql, char *sql, char *acct, char *db) { int code = TSDB_CODE_INVALID_SQL; SSqlCmd *pCmd = &pSql->cmd; - tscCleanSqlCmd(pCmd); - sql = tscGetToken(sql, &verb, &verblen); if (verblen) { @@ -1055,6 +1060,7 @@ int tsParseInsertSql(SSqlObj *pSql, char *sql, char *acct, char *db) { int tsParseSql(SSqlObj *pSql, char *acct, char *db, bool multiVnodeInsertion) { int32_t ret = TSDB_CODE_SUCCESS; + tscCleanSqlCmd(&pSql->cmd); if (tscIsInsertOrImportData(pSql->sqlstr)) { /* @@ -1074,6 +1080,9 @@ int tsParseSql(SSqlObj *pSql, char *acct, char *db, bool multiVnodeInsertion) { } else { SSqlInfo SQLInfo = {0}; tSQLParse(&SQLInfo, pSql->sqlstr); + + tscAllocPayloadWithSize(&pSql->cmd, TSDB_DEFAULT_PAYLOAD_SIZE); + ret = tscToSQLCmd(pSql, &SQLInfo); SQLInfoDestroy(&SQLInfo); } @@ -1098,7 +1107,7 @@ static int doPackSendDataBlock(SSqlObj* pSql, int32_t numOfRows, STableDataBlock SShellSubmitBlock *pBlocks = (SShellSubmitBlock *)(pTableDataBlocks->pData); tsSetBlockInfo(pBlocks, pMeterMeta, numOfRows); - tscMergeTableDataBlocks(pCmd, pCmd->pDataBlocks); + tscMergeTableDataBlocks(pSql, pCmd->pDataBlocks); // the pDataBlock is different from the pTableDataBlocks STableDataBlocks *pDataBlock = pCmd->pDataBlocks->pData[0]; diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index 33f699660d560e78ebdf3b2fe1637ef844bf5a3b..cf43aad94bcf49e18a4c61b9fe9aeebaec116087 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -143,9 +143,6 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) { return TSDB_CODE_INVALID_SQL; } - tscCleanSqlCmd(pCmd); - tscAllocPayloadWithSize(pCmd, TSDB_DEFAULT_PAYLOAD_SIZE); - // transfer pInfo into select operation switch (pInfo->sqlType) { case DROP_TABLE: @@ -785,7 +782,8 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) { // set sliding value SSQLToken* pSliding = &pQuerySql->sliding; if (pSliding->n != 0) { - if (!tscEmbedded) { + // pCmd->count == 1 means sql in stream function + if (!tscEmbedded && pCmd->count == 0) { const char* msg = "not support sliding in query"; setErrMsg(pCmd, msg); return TSDB_CODE_INVALID_SQL; diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index f661fd853ca61e85d5cf0becdefcd85f005ceb4b..9f58fe13906873af73c244c210c0a03ebaa33705 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -287,14 +287,20 @@ void *tscProcessMsgFromServer(char *msg, void *ahandle, void *thandle) { pSql->thandle = NULL; taosAddConnIntoCache(tscConnCache, thandle, pSql->ip, pSql->vnode, pObj->user); - if (UTIL_METER_IS_METRIC(pCmd) && - (pMsg->content[0] == TSDB_CODE_INVALID_SESSION_ID || pMsg->content[0] == TSDB_CODE_NOT_ACTIVE_SESSION)) { + if (UTIL_METER_IS_METRIC(pCmd) && pMsg->content[0] == TSDB_CODE_NOT_ACTIVE_SESSION) { /* * for metric query, in case of any meter missing during query, sub-query of metric query will failed, * causing metric query failed, and return TSDB_CODE_METRICMETA_EXPIRED code to app */ tscTrace("%p invalid meters id cause metric query failed, code:%d", pSql, pMsg->content[0]); code = TSDB_CODE_METRICMETA_EXPIRED; + } else if ((pCmd->command == TSDB_SQL_INSERT || pCmd->command == TSDB_SQL_SELECT) && + pMsg->content[0] == TSDB_CODE_INVALID_SESSION_ID) { + /* + * session id is invalid(e.g., less than 0 or larger than maximum session per + * vnode) in submit/query msg, no retry + */ + code = TSDB_CODE_INVALID_QUERY_MSG; } else if (pCmd->command == TSDB_SQL_CONNECT) { code = TSDB_CODE_NETWORK_UNAVAIL; } else if (pCmd->command == TSDB_SQL_HB) { @@ -1027,8 +1033,6 @@ int tscBuildSubmitMsg(SSqlObj *pSql) { pShellMsg->vnode = htons(pMeterMeta->vpeerDesc[pMeterMeta->index].vnode); pShellMsg->numOfSid = htonl(pSql->cmd.count); /* number of meters to be inserted */ - pMsg += sizeof(SShellSubmitMsg); - /* * pSql->cmd.payloadLen is set during parse sql routine, so we do not use it here */ diff --git a/src/client/src/tscSql.c b/src/client/src/tscSql.c index a58238624fffc53a8157ef9535c9b6e4ab16b00c..d55a765d3b0691cd55fe9ac04a5f5d31719290bf 100644 --- a/src/client/src/tscSql.c +++ b/src/client/src/tscSql.c @@ -72,7 +72,7 @@ TAOS *taos_connect_imp(char *ip, char *user, char *pass, char *db, int port, voi pObj->signature = pObj; strncpy(pObj->user, user, TSDB_USER_LEN); - taosEncryptPass(pass, strlen(pass), pObj->pass); + taosEncryptPass((uint8_t *)pass, strlen(pass), pObj->pass); pObj->mgmtPort = port ? port : tsMgmtShellPort; if (db) { diff --git a/src/client/src/tscStream.c b/src/client/src/tscStream.c index 84741f098e269e8d6037823a6b8b1823f9f16613..ea3d1e86e556ba23c4362b89049e48506226d6e4 100644 --- a/src/client/src/tscStream.c +++ b/src/client/src/tscStream.c @@ -145,13 +145,14 @@ static void tscProcessStreamQueryCallback(void *param, TAOS_RES *tres, int numOf static void tscSetTimestampForRes(SSqlStream *pStream, SSqlObj *pSql, int32_t numOfRows) { SSqlRes *pRes = &pSql->res; + int64_t timestamp = *(int64_t *)pRes->data; + int64_t actualTimestamp = pStream->stime - pStream->interval; - if (timestamp != pStream->stime) { + if (timestamp != actualTimestamp) { // reset the timestamp of each agg point by using start time of each interval - *((int64_t *)pRes->data) = pStream->stime - pStream->interval; - tscWarn("%p stream:%p, timestamp of points is:%lld, reset to %lld", pSql, pStream, timestamp, - pStream->stime - pStream->interval); + *((int64_t *)pRes->data) = actualTimestamp; + tscWarn("%p stream:%p, timestamp of points is:%lld, reset to %lld", pSql, pStream, timestamp, actualTimestamp); } } @@ -397,7 +398,7 @@ static int64_t tscGetStreamStartTimestamp(SSqlObj *pSql, SSqlStream *pStream, in } else { // timewindow based aggregation stream if (stime == 0) { // no data in meter till now stime = ((int64_t)taosGetTimestamp(pStream->precision) / pStream->interval) * pStream->interval; - tscWarn("%p stream:%p, last timestamp:0, reset to:%lld", pSql, pStream, stime, stime); + tscWarn("%p stream:%p, last timestamp:0, reset to:%lld", pSql, pStream, stime); } else { int64_t newStime = (stime / pStream->interval) * pStream->interval; if (newStime != stime) { @@ -435,13 +436,25 @@ static int64_t tscGetLaunchTimestamp(const SSqlStream *pStream) { return (pStream->precision == TSDB_TIME_PRECISION_MICRO) ? timer / 1000L : timer; } +static void setErrorInfo(STscObj* pObj, int32_t code, char* info) { + if (pObj == NULL) { + return; + } + + SSqlCmd* pCmd = &pObj->pSql->cmd; + + pObj->pSql->res.code = code; + strncpy(pCmd->payload, info, pCmd->payloadLen); +} + TAOS_STREAM *taos_open_stream(TAOS *taos, char *sqlstr, void (*fp)(void *param, TAOS_RES *, TAOS_ROW row), int64_t stime, void *param, void (*callback)(void *)) { STscObj *pObj = (STscObj *)taos; if (pObj == NULL || pObj->signature != pObj) return NULL; SSqlObj *pSql = (SSqlObj *)calloc(1, sizeof(SSqlObj)); - if (pSql == NULL) { // todo set corect error msg + if (pSql == NULL) { + setErrorInfo(pObj, TSDB_CODE_CLI_OUT_OF_MEMORY, NULL); return NULL; } @@ -451,22 +464,31 @@ TAOS_STREAM *taos_open_stream(TAOS *taos, char *sqlstr, void (*fp)(void *param, SSqlRes *pRes = &pSql->res; tscAllocPayloadWithSize(pCmd, TSDB_DEFAULT_PAYLOAD_SIZE); - pSql->sqlstr = calloc(1, strlen(sqlstr) + 1); - if (pSql->sqlstr == NULL) { // todo set corect error msg + pSql->sqlstr = strdup(sqlstr); + if (pSql->sqlstr == NULL) { + setErrorInfo(pObj, TSDB_CODE_CLI_OUT_OF_MEMORY, NULL); + tfree(pSql); return NULL; } - strcpy(pSql->sqlstr, sqlstr); sem_init(&pSql->rspSem, 0, 0); sem_init(&pSql->emptyRspSem, 0, 1); SSqlInfo SQLInfo = {0}; tSQLParse(&SQLInfo, pSql->sqlstr); + + tscCleanSqlCmd(&pSql->cmd); + tscAllocPayloadWithSize(&pSql->cmd, TSDB_DEFAULT_PAYLOAD_SIZE); + + //todo refactor later + pSql->cmd.count = 1; pRes->code = tscToSQLCmd(pSql, &SQLInfo); SQLInfoDestroy(&SQLInfo); if (pRes->code != TSDB_CODE_SUCCESS) { + setErrorInfo(pObj, pRes->code, pCmd->payload); + tscError("%p open stream failed, sql:%s, reason:%s, code:%d", pSql, sqlstr, pCmd->payload, pRes->code); tscFreeSqlObj(pSql); return NULL; @@ -474,6 +496,8 @@ TAOS_STREAM *taos_open_stream(TAOS *taos, char *sqlstr, void (*fp)(void *param, SSqlStream *pStream = (SSqlStream *)calloc(1, sizeof(SSqlStream)); if (pStream == NULL) { + setErrorInfo(pObj, TSDB_CODE_CLI_OUT_OF_MEMORY, NULL); + tscError("%p open stream failed, sql:%s, reason:%s, code:%d", pSql, sqlstr, pCmd->payload, pRes->code); tscFreeSqlObj(pSql); return NULL; diff --git a/src/client/src/tscUtil.c b/src/client/src/tscUtil.c index e71fa0792bf6484dc047543c294e7ec6658ade31..4c9c180f6a07f88b39113cbf02269c00bd06af8f 100644 --- a/src/client/src/tscUtil.c +++ b/src/client/src/tscUtil.c @@ -401,7 +401,7 @@ void tscFreeUnusedDataBlocks(SDataBlockList* pList) { } STableDataBlocks* tscCreateDataBlockEx(size_t size, int32_t rowSize, int32_t startOffset, char* name) { - STableDataBlocks *dataBuf = tscCreateDataBlock(size); + STableDataBlocks* dataBuf = tscCreateDataBlock(size); dataBuf->rowSize = rowSize; dataBuf->size = startOffset; @@ -419,7 +419,7 @@ STableDataBlocks* tscGetDataBlockFromList(void* pHashList, SDataBlockList* pData } if (dataBuf == NULL) { - dataBuf = tscCreateDataBlockEx((size_t) size, rowSize, startOffset, tableId); + dataBuf = tscCreateDataBlockEx((size_t)size, rowSize, startOffset, tableId); dataBuf = *(STableDataBlocks**)taosAddIntHash(pHashList, id, (char*)&dataBuf); tscAppendDataBlock(pDataBlockList, dataBuf); } @@ -427,7 +427,8 @@ STableDataBlocks* tscGetDataBlockFromList(void* pHashList, SDataBlockList* pData return dataBuf; } -void tscMergeTableDataBlocks(SSqlCmd* pCmd, SDataBlockList* pTableDataBlockList) { +void tscMergeTableDataBlocks(SSqlObj* pSql, SDataBlockList* pTableDataBlockList) { + SSqlCmd* pCmd = &pSql->cmd; void* pVnodeDataBlockHashList = taosInitIntHash(8, sizeof(void*), taosHashInt); SDataBlockList* pVnodeDataBlockList = tscCreateBlockArrayList(); @@ -453,9 +454,10 @@ void tscMergeTableDataBlocks(SSqlCmd* pCmd, SDataBlockList* pTableDataBlockList) } SShellSubmitBlock* pBlocks = (SShellSubmitBlock*)pOneTableBlock->pData; - assert(pBlocks->numOfRows * pOneTableBlock->rowSize + sizeof(SShellSubmitBlock) == pOneTableBlock->size); + sortRemoveDuplicates(pOneTableBlock); - pBlocks->numOfRows = (int16_t)sortRemoveDuplicates(pOneTableBlock, pBlocks->numOfRows); + tscTrace("%p meterId:%s, sid:%d, rows:%d, sversion:%d", pSql, pOneTableBlock->meterId, pBlocks->sid, + pBlocks->numOfRows, pBlocks->sversion); pBlocks->sid = htonl(pBlocks->sid); pBlocks->uid = htobe64(pBlocks->uid); @@ -883,7 +885,7 @@ static int32_t validateQuoteToken(SSQLToken* pToken) { if (pToken->type == TK_STRING) { return tscValidateName(pToken); - } + } if (k != pToken->n || pToken->type != TK_ID) { return TSDB_CODE_INVALID_SQL; @@ -906,16 +908,16 @@ int32_t tscValidateName(SSQLToken* pToken) { int len = tSQLGetToken(pToken->z, &pToken->type); // single token, validate it - if (len == pToken->n){ + if (len == pToken->n) { return validateQuoteToken(pToken); } else { - sep = strnchrNoquote(pToken->z, TS_PATH_DELIMITER[0], pToken->n); - if (sep == NULL) { - return TSDB_CODE_INVALID_SQL; - } + sep = strnchrNoquote(pToken->z, TS_PATH_DELIMITER[0], pToken->n); + if (sep == NULL) { + return TSDB_CODE_INVALID_SQL; + } return tscValidateName(pToken); - } + } } else { if (isNumber(pToken)) { return TSDB_CODE_INVALID_SQL; @@ -927,7 +929,7 @@ int32_t tscValidateName(SSQLToken* pToken) { if (pToken->type == TK_SPACE) { strtrim(pToken->z); - pToken->n = (uint32_t)strlen(pToken->z); + pToken->n = (uint32_t)strlen(pToken->z); } pToken->n = tSQLGetToken(pToken->z, &pToken->type); diff --git a/src/system/src/vnodeMeter.c b/src/system/src/vnodeMeter.c index d6283cfa4f49f6b6fde5f2f81d43dc9dac4d9408..b8961e98ec4d75b5aafcbbd96529784ed92ae98b 100644 --- a/src/system/src/vnodeMeter.c +++ b/src/system/src/vnodeMeter.c @@ -512,6 +512,7 @@ int vnodeInsertPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi SSubmitMsg *pSubmit = (SSubmitMsg *)cont; char * pData; TSKEY tsKey; + int cfile; int points = 0; int code = TSDB_CODE_SUCCESS; SVnodeObj * pVnode = vnodeList + pObj->vnode; @@ -528,6 +529,7 @@ int vnodeInsertPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi // to guarantee time stamp is the same for all vnodes pData = pSubmit->payLoad; tsKey = taosGetTimestamp(pVnode->cfg.precision); + cfile = tsKey/pVnode->cfg.daysPerFile/tsMsPerDay[pVnode->cfg.precision]; if (*((TSKEY *)pData) == 0) { for (i = 0; i < numOfPoints; ++i) { *((TSKEY *)pData) = tsKey++; @@ -570,9 +572,11 @@ int vnodeInsertPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi code = 0; TSKEY firstKey = *((TSKEY *)pData); - if (pVnode->lastKeyOnFile > pVnode->cfg.daysToKeep * tsMsPerDay[pVnode->cfg.precision] + firstKey) { - dError("vid:%d sid:%d id:%s, vnode lastKeyOnFile:%lld, data is too old to insert, key:%lld", pObj->vnode, pObj->sid, - pObj->meterId, pVnode->lastKeyOnFile, firstKey); + int firstId = firstKey/pVnode->cfg.daysPerFile/tsMsPerDay[pVnode->cfg.precision]; + int lastId = (*(TSKEY *)(pData + pObj->bytesPerPoint * (numOfPoints - 1)))/pVnode->cfg.daysPerFile/tsMsPerDay[pVnode->cfg.precision]; + if ((firstId <= cfile - pVnode->maxFiles) || (firstId > cfile + 1) || (lastId <= cfile - pVnode->maxFiles) || (lastId > cfile + 1)) { + dError("vid:%d sid:%d id:%s, invalid timestamp to insert, firstKey: %ld lastKey: %ld ", pObj->vnode, pObj->sid, + pObj->meterId, firstKey, (*(TSKEY *)(pData + pObj->bytesPerPoint * (numOfPoints - 1)))); return TSDB_CODE_TIMESTAMP_OUT_OF_RANGE; } @@ -582,7 +586,7 @@ int vnodeInsertPoints(SMeterObj *pObj, char *cont, int contLen, char source, voi dWarn("vid:%d sid:%d id:%s, meter is dropped, abort insert, state:%d", pObj->vnode, pObj->sid, pObj->meterId, pObj->state); - code = TSDB_CODE_INVALID_SESSION_ID; + code = TSDB_CODE_NOT_ACTIVE_SESSION; break; } diff --git a/src/system/src/vnodeShell.c b/src/system/src/vnodeShell.c index de3cca4fdf3cf7a50a7463607b383332cdd9bc48..03ddf522cea5eabf60151a6aefdec88fa02045d9 100644 --- a/src/system/src/vnodeShell.c +++ b/src/system/src/vnodeShell.c @@ -248,7 +248,7 @@ int vnodeProcessQueryRequest(char *pMsg, int msgLen, SShellObj *pObj) { } if (pQueryMsg->numOfSids <= 0) { - code = TSDB_CODE_APP_ERROR; + code = TSDB_CODE_INVALID_QUERY_MSG; goto _query_over; } @@ -263,7 +263,7 @@ int vnodeProcessQueryRequest(char *pMsg, int msgLen, SShellObj *pObj) { if (pVnode->cfg.maxSessions == 0) { dError("qmsg:%p,vid:%d is not activated yet", pQueryMsg, pQueryMsg->vnode); vnodeSendVpeerCfgMsg(pQueryMsg->vnode); - code = TSDB_CODE_INVALID_SESSION_ID; + code = TSDB_CODE_NOT_ACTIVE_SESSION; goto _query_over; } @@ -274,13 +274,13 @@ int vnodeProcessQueryRequest(char *pMsg, int msgLen, SShellObj *pObj) { if (pQueryMsg->pSidExtInfo == 0) { dTrace("qmsg:%p,SQueryMeterMsg wrong format", pQueryMsg); - code = TSDB_CODE_APP_ERROR; + code = TSDB_CODE_INVALID_QUERY_MSG; goto _query_over; } if (pVnode->meterList == NULL) { dError("qmsg:%p,vid:%d has been closed", pQueryMsg, pQueryMsg->vnode); - code = TSDB_CODE_INVALID_SESSION_ID; + code = TSDB_CODE_NOT_ACTIVE_SESSION; goto _query_over; } @@ -448,7 +448,7 @@ int vnodeProcessShellSubmitRequest(char *pMsg, int msgLen, SShellObj *pObj) { if (pSubmit->numOfSid <= 0) { dError("invalid num of meters:%d", pSubmit->numOfSid); - code = TSDB_CODE_APP_ERROR; + code = TSDB_CODE_INVALID_QUERY_MSG; goto _submit_over; } @@ -462,7 +462,7 @@ int vnodeProcessShellSubmitRequest(char *pMsg, int msgLen, SShellObj *pObj) { if (pVnode->cfg.maxSessions == 0 || pVnode->meterList == NULL) { dError("vid:%d is not activated for submit", pSubmit->vnode); vnodeSendVpeerCfgMsg(pSubmit->vnode); - code = TSDB_CODE_INVALID_SESSION_ID; + code = TSDB_CODE_NOT_ACTIVE_SESSION; goto _submit_over; } diff --git a/src/system/src/vnodeStream.c b/src/system/src/vnodeStream.c index 75bb972e74b44f25bf325adeb34bd27faae66960..d7b7f62baefcc2247a0c6007c2459266ea95ec8c 100644 --- a/src/system/src/vnodeStream.c +++ b/src/system/src/vnodeStream.c @@ -13,8 +13,9 @@ * along with this program. If not, see . */ +#include "taosmsg.h" #include "vnode.h" -#include +#include "vnodeUtil.h" /* static TAOS *dbConn = NULL; */ void vnodeCloseStreamCallback(void *param);