diff --git a/src/client/src/tscJoinProcess.c b/src/client/src/tscJoinProcess.c index 1e7355d1b174a722be93eda3b8e0a926520709a4..dd130ed1ef1a1fd406b8e9c4f41a79f297ff74db 100644 --- a/src/client/src/tscJoinProcess.c +++ b/src/client/src/tscJoinProcess.c @@ -819,6 +819,7 @@ STSBuf* tsBufCreateFromFile(const char* path, bool autoDelete) { pTSBuf->f = fopen(pTSBuf->path, "r+"); if (pTSBuf->f == NULL) { + free(pTSBuf); return NULL; } @@ -860,7 +861,8 @@ STSBuf* tsBufCreateFromFile(const char* path, bool autoDelete) { size_t infoSize = sizeof(STSVnodeBlockInfo) * pTSBuf->numOfVnodes; STSVnodeBlockInfo* buf = (STSVnodeBlockInfo*)calloc(1, infoSize); - int64_t pos = ftell(pTSBuf->f); + + //int64_t pos = ftell(pTSBuf->f); //pos not used fread(buf, infoSize, 1, pTSBuf->f); // the length value for each vnode is not kept in file, so does not set the length value @@ -1365,6 +1367,10 @@ bool tsBufNextPos(STSBuf* pTSBuf) { pCur->vnodeIndex = -1; return false; } + + if (pBlockInfo == NULL) { + return false; + } int32_t blockIndex = pCur->order == TSQL_SO_ASC ? 0 : pBlockInfo->numOfBlocks - 1; tsBufGetBlock(pTSBuf, pCur->vnodeIndex + step, blockIndex); diff --git a/src/client/src/tscParseInsert.c b/src/client/src/tscParseInsert.c index d4ab40b4c7bd049c92eb97612fcff089a7370232..6317decbe020e52e0b3747b67892d09cca8fb3e4 100644 --- a/src/client/src/tscParseInsert.c +++ b/src/client/src/tscParseInsert.c @@ -74,8 +74,8 @@ static int32_t tscToDouble(SSQLToken *pToken, double *value, char **endPtr) { } int tsParseTime(SSQLToken *pToken, int64_t *time, char **next, char *error, int16_t timePrec) { - char * token; - int tokenlen; + //char * token; //fang not used + //int tokenlen; //fang not used int32_t index = 0; SSQLToken sToken; int64_t interval; @@ -394,7 +394,7 @@ static int32_t tsCheckTimestamp(STableDataBlocks *pDataBlocks, const char *start int tsParseOneRowData(char **str, STableDataBlocks *pDataBlocks, SSchema schema[], SParsedDataColInfo *spd, char *error, int16_t timePrec, int32_t *code, char* tmpTokenBuf) { int32_t index = 0; - bool isPrevOptr; + //bool isPrevOptr; //fang, never used SSQLToken sToken = {0}; char * payload = pDataBlocks->pData + pDataBlocks->size; @@ -436,9 +436,9 @@ int tsParseOneRowData(char **str, STableDataBlocks *pDataBlocks, SSchema schema[ char delim = sToken.z[0]; int32_t cnt = 0; int32_t j = 0; - for (int32_t i = 1; i < sToken.n - 1; ++i) { - if (sToken.z[i] == delim || sToken.z[i] == '\\') { - if (sToken.z[i + 1] == delim) { + for (int32_t k = 1; k < sToken.n - 1; ++k) { + if (sToken.z[k] == delim || sToken.z[k] == '\\') { + if (sToken.z[k + 1] == delim) { cnt++; continue; } @@ -1239,7 +1239,7 @@ static int tscInsertDataFromFile(SSqlObj *pSql, FILE *fp, char *tmpTokenBuf) { while ((readLen = getline(&line, &n, fp)) != -1) { // line[--readLen] = '\0'; if (('\r' == line[readLen - 1]) || ('\n' == line[readLen - 1])) line[--readLen] = 0; - if (readLen <= 0) continue; + if (readLen == 0) continue; //fang, <= to == char *lineptr = line; strtolower(line, line);