diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index e856481a9a5c84967910bb609fe5347b171bab7a..05114cc3244cab876c7aec5af31ac23cc42b3d8f 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -1,6 +1,12 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(TDengine) +IF (TD_WINDOWS) + INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/pthread) + INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/iconv) + INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/regex) +ENDIF () + INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/os/inc) INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/src/util/inc) diff --git a/src/common/src/tdataformat.c b/src/common/src/tdataformat.c index a185a9de7b4f79d1adcb12205af09a02e7cdfe36..0be021617446e75414c40677e5f53360db1c8d15 100644 --- a/src/common/src/tdataformat.c +++ b/src/common/src/tdataformat.c @@ -565,7 +565,7 @@ int tdSetKVRowDataOfCol(SKVRow *orow, int16_t colId, int8_t type, void *value) { nrow = malloc(kvRowLen(row) + sizeof(SColIdx) + diff); if (nrow == NULL) return -1; - kvRowSetLen(nrow, kvRowLen(row) + sizeof(SColIdx) + diff); + kvRowSetLen(nrow, kvRowLen(row) + (int16_t)sizeof(SColIdx) + diff); kvRowSetNCols(nrow, kvRowNCols(row) + 1); if (ptr == NULL) { @@ -573,10 +573,10 @@ int tdSetKVRowDataOfCol(SKVRow *orow, int16_t colId, int8_t type, void *value) { memcpy(kvRowValues(nrow), kvRowValues(row), POINTER_DISTANCE(kvRowEnd(row), kvRowValues(row))); int colIdx = kvRowNCols(nrow) - 1; kvRowColIdxAt(nrow, colIdx)->colId = colId; - kvRowColIdxAt(nrow, colIdx)->offset = POINTER_DISTANCE(kvRowEnd(row), kvRowValues(row)); + kvRowColIdxAt(nrow, colIdx)->offset = (int16_t)(POINTER_DISTANCE(kvRowEnd(row), kvRowValues(row))); memcpy(kvRowColVal(nrow, kvRowColIdxAt(nrow, colIdx)), value, diff); } else { - int16_t tlen = POINTER_DISTANCE(ptr, kvRowColIdx(row)); + int16_t tlen = (int16_t)(POINTER_DISTANCE(ptr, kvRowColIdx(row))); if (tlen > 0) { memcpy(kvRowColIdx(nrow), kvRowColIdx(row), tlen); memcpy(kvRowValues(nrow), kvRowValues(row), ((SColIdx *)ptr)->offset); @@ -617,7 +617,7 @@ int tdSetKVRowDataOfCol(SKVRow *orow, int16_t colId, int8_t type, void *value) { kvRowSetNCols(nrow, kvRowNCols(row)); // Copy part ahead - nlen = POINTER_DISTANCE(ptr, kvRowColIdx(row)); + nlen = (int16_t)(POINTER_DISTANCE(ptr, kvRowColIdx(row))); ASSERT(nlen % sizeof(SColIdx) == 0); if (nlen > 0) { ASSERT(((SColIdx *)ptr)->offset > 0); diff --git a/src/common/src/tglobal.c b/src/common/src/tglobal.c index c3dc078428cfa66298444d29ff669fc05e7f65fc..94eb0586e25777594e63ad229bbe942c5a25c56b 100644 --- a/src/common/src/tglobal.c +++ b/src/common/src/tglobal.c @@ -92,7 +92,7 @@ int32_t tsStreamCompStartDelay = 10000; int32_t tsStreamCompRetryDelay = 10; // The delayed computing ration. 10% of the whole computing time window by default. -float tsStreamComputDelayRatio = 0.1; +float tsStreamComputDelayRatio = 0.1f; int32_t tsProjectExecInterval = 10000; // every 10sec, the projection will be executed once int64_t tsMaxRetentWindow = 24 * 3600L; // maximum time window tolerance @@ -173,8 +173,8 @@ float tsTotalTmpDirGB = 0; float tsTotalDataDirGB = 0; float tsAvailTmpDirectorySpace = 0; float tsAvailDataDirGB = 0; -float tsReservedTmpDirectorySpace = 0.1; -float tsMinimalDataDirGB = 0.5; +float tsReservedTmpDirectorySpace = 0.1f; +float tsMinimalDataDirGB = 0.5f; int32_t tsTotalMemoryMB = 0; int32_t tsVersion = 0; @@ -294,7 +294,7 @@ bool taosCfgDynamicOptions(char *msg) { return false; } -static void doInitGlobalConfig() { +static void doInitGlobalConfig(void) { SGlobalCfg cfg = {0}; // ip address @@ -405,8 +405,8 @@ static void doInitGlobalConfig() { cfg.ptr = &tsRatioOfQueryThreads; cfg.valType = TAOS_CFG_VTYPE_FLOAT; cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG; - cfg.minValue = 0.1; - cfg.maxValue = 0.9; + cfg.minValue = 0.1f; + cfg.maxValue = 0.9f; cfg.ptrLength = 0; cfg.unitType = TAOS_CFG_UTYPE_NONE; taosInitConfigOption(cfg); @@ -607,8 +607,8 @@ static void doInitGlobalConfig() { cfg.ptr = &tsStreamComputDelayRatio; cfg.valType = TAOS_CFG_VTYPE_FLOAT; cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 0.1; - cfg.maxValue = 0.9; + cfg.minValue = 0.1f; + cfg.maxValue = 0.9f; cfg.ptrLength = 0; cfg.unitType = TAOS_CFG_UTYPE_NONE; taosInitConfigOption(cfg); @@ -870,7 +870,7 @@ static void doInitGlobalConfig() { cfg.ptr = &tsMinimalLogDirGB; cfg.valType = TAOS_CFG_VTYPE_FLOAT; cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 0.001; + cfg.minValue = 0.001f; cfg.maxValue = 10000000; cfg.ptrLength = 0; cfg.unitType = TAOS_CFG_UTYPE_GB; @@ -880,7 +880,7 @@ static void doInitGlobalConfig() { cfg.ptr = &tsReservedTmpDirectorySpace; cfg.valType = TAOS_CFG_VTYPE_FLOAT; cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 0.001; + cfg.minValue = 0.001f; cfg.maxValue = 10000000; cfg.ptrLength = 0; cfg.unitType = TAOS_CFG_UTYPE_GB; @@ -890,7 +890,7 @@ static void doInitGlobalConfig() { cfg.ptr = &tsMinimalDataDirGB; cfg.valType = TAOS_CFG_VTYPE_FLOAT; cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_SHOW; - cfg.minValue = 0.001; + cfg.minValue = 0.001f; cfg.maxValue = 10000000; cfg.ptrLength = 0; cfg.unitType = TAOS_CFG_UTYPE_GB; @@ -1256,7 +1256,7 @@ static void doInitGlobalConfig() { cfg.valType = TAOS_CFG_VTYPE_INT32; cfg.cfgType = TSDB_CFG_CTYPE_B_CONFIG | TSDB_CFG_CTYPE_B_CLIENT; cfg.minValue = 1; - cfg.maxValue = 0x7fffffff; + cfg.maxValue = 65536; cfg.ptrLength = 0; cfg.unitType = TAOS_CFG_UTYPE_NONE; taosInitConfigOption(cfg); @@ -1338,7 +1338,7 @@ int taosGetFqdnPortFromEp(const char *ep, char *fqdn, uint16_t *port) { */ bool taosCheckBalanceCfgOptions(const char *option, int32_t *vnodeId, int32_t *dnodeId) { - int len = strlen(option); + int len = (int)strlen(option); if (strncasecmp(option, "vnode:", 6) != 0) { return false; } diff --git a/src/common/src/tname.c b/src/common/src/tname.c index 15ec68fc66e770adad09815219d593aaa83f492c..d80ddb0ee2ba4883c63126f1023b3c86fb02f396 100644 --- a/src/common/src/tname.c +++ b/src/common/src/tname.c @@ -6,7 +6,7 @@ #include "ttokendef.h" // todo refactor -__attribute__((unused)) static FORCE_INLINE const char* skipSegments(const char* input, char delim, int32_t num) { +UNUSED_FUNC static FORCE_INLINE const char* skipSegments(const char* input, char delim, int32_t num) { for (int32_t i = 0; i < num; ++i) { while (*input != 0 && *input++ != delim) { }; @@ -14,7 +14,7 @@ __attribute__((unused)) static FORCE_INLINE const char* skipSegments(const char* return input; } -__attribute__((unused)) static FORCE_INLINE size_t copy(char* dst, const char* src, char delimiter) { +UNUSED_FUNC static FORCE_INLINE size_t copy(char* dst, const char* src, char delimiter) { size_t len = 0; while (*src != delimiter && *src != 0) { *dst++ = *src++; @@ -120,11 +120,11 @@ void extractTableNameFromToken(SSQLToken* pToken, SSQLToken* pTable) { char* r = strnchr(pToken->z, sep, pToken->n, false); if (r != NULL) { // record the table name token - pTable->n = r - pToken->z; + pTable->n = (uint32_t)(r - pToken->z); pTable->z = pToken->z; r += 1; - pToken->n -= (r - pToken->z); + pToken->n -= (uint32_t)(r - pToken->z); pToken->z = r; } } diff --git a/src/common/src/ttypes.c b/src/common/src/ttypes.c index 44b1d9fc385595638098ad098f51245a46a4bfef..3910d80ecf3cc035074b54b2671828c9b2a3ca8c 100644 --- a/src/common/src/ttypes.c +++ b/src/common/src/ttypes.c @@ -204,8 +204,8 @@ static void getStatics_i64(const TSKEY *primaryKey, const void *pData, int32_t n static void getStatics_f(const TSKEY *primaryKey, const void *pData, int32_t numOfRow, int64_t *min, int64_t *max, int64_t *sum, int16_t *minIndex, int16_t *maxIndex, int16_t *numOfNull) { float *data = (float *)pData; - float fmin = DBL_MAX; - float fmax = -DBL_MAX; + float fmin = FLT_MAX; + float fmax = -FLT_MAX; double dsum = 0; *minIndex = 0; *maxIndex = 0; diff --git a/src/common/src/tvariant.c b/src/common/src/tvariant.c index 2906b3f0aca5a1527efa984d2068351a57796f3a..5460d2125219112105a376b8853eaf439faa2425 100644 --- a/src/common/src/tvariant.c +++ b/src/common/src/tvariant.c @@ -101,19 +101,19 @@ void tVariantCreateFromBinary(tVariant *pVar, const char *pz, size_t len, uint32 break; } case TSDB_DATA_TYPE_NCHAR: { // here we get the nchar length from raw binary bits length - int32_t lenInwchar = len / TSDB_NCHAR_SIZE; + size_t lenInwchar = len / TSDB_NCHAR_SIZE; pVar->wpz = calloc(1, (lenInwchar + 1) * TSDB_NCHAR_SIZE); wcsncpy(pVar->wpz, (wchar_t *)pz, lenInwchar); pVar->wpz[lenInwchar] = 0; - pVar->nLen = len; + pVar->nLen = (int32_t)len; break; } case TSDB_DATA_TYPE_BINARY: { // todo refactor, extract a method pVar->pz = calloc(len, sizeof(char)); memcpy(pVar->pz, pz, len); - pVar->nLen = len; + pVar->nLen = (int32_t)len; break; } @@ -185,7 +185,7 @@ int32_t tVariantToString(tVariant *pVar, char *dst) { case TSDB_DATA_TYPE_NCHAR: { dst[0] = '\''; taosUcs4ToMbs(pVar->wpz, (twcslen(pVar->wpz) + 1) * TSDB_NCHAR_SIZE, dst + 1); - int32_t len = strlen(dst); + int32_t len = (int32_t)strlen(dst); dst[len] = '\''; dst[len + 1] = 0; return len + 1; @@ -361,11 +361,11 @@ static int32_t toBinary(tVariant *pVariant, char **pDest, int32_t *pDestSize) { pBuf = realloc(pBuf, newSize + 1); } - taosUcs4ToMbs(pVariant->wpz, newSize, pBuf); + taosUcs4ToMbs(pVariant->wpz, (int32_t)newSize, pBuf); free(pVariant->wpz); pBuf[newSize] = 0; } else { - taosUcs4ToMbs(pVariant->wpz, newSize, *pDest); + taosUcs4ToMbs(pVariant->wpz, (int32_t)newSize, *pDest); } } else { @@ -384,7 +384,7 @@ static int32_t toBinary(tVariant *pVariant, char **pDest, int32_t *pDestSize) { *pDest = pBuf; } - *pDestSize = strlen(*pDest); + *pDestSize = (int32_t)strlen(*pDest); return 0; } @@ -428,7 +428,7 @@ static int32_t toNchar(tVariant *pVariant, char **pDest, int32_t *pDestSize) { taosMbsToUcs4(pDst, nLen, *pDest, (nLen + 1) * TSDB_NCHAR_SIZE, &output); if (pDestSize != NULL) { - *pDestSize = output; + *pDestSize = (int32_t)output; } } @@ -682,7 +682,7 @@ int32_t tVariantDump(tVariant *pVariant, char *payload, int16_t type, bool inclu float fv = (float)pVariant->i64Key; SET_FLOAT_VAL_ALIGN(payload, &fv); #else - *((float *)payload) = pVariant->i64Key; + *((float *)payload) = (float)pVariant->i64Key; #endif } else if (pVariant->nType == TSDB_DATA_TYPE_DOUBLE || pVariant->nType == TSDB_DATA_TYPE_FLOAT) { #ifdef _TD_ARM_32_ @@ -735,7 +735,7 @@ int32_t tVariantDump(tVariant *pVariant, char *payload, int16_t type, bool inclu double dv = (double)(pVariant->i64Key); SET_DOUBLE_VAL_ALIGN(payload, &dv); #else - *((double *)payload) = pVariant->i64Key; + *((double *)payload) = (double)pVariant->i64Key; #endif } else if (pVariant->nType == TSDB_DATA_TYPE_DOUBLE || pVariant->nType == TSDB_DATA_TYPE_FLOAT) { #ifdef _TD_ARM_32_ diff --git a/src/os/inc/osFile.h b/src/os/inc/osFile.h index 3bd32734e6aa598fb09ec739ac7d76309c8ce5cb..e99c64c2e04165bb42006935385c7f06395a8ac1 100644 --- a/src/os/inc/osFile.h +++ b/src/os/inc/osFile.h @@ -68,6 +68,10 @@ void taosGetTmpfilePath(const char *fileNamePrefix, char *dstPath); #define S_ISLNK(m) 0 #endif +#ifndef TAOS_OS_FUNC_FILE_FTRUNCATE + #define taosFtruncate ftruncate +#endif + #ifdef __cplusplus } #endif diff --git a/src/os/inc/osWindows.h b/src/os/inc/osWindows.h index fcb89c072d8a60465e0b5b6c3bef2c4d83a9daef..63d51287837746f91fe0ee31ed09bf3f78081029 100644 --- a/src/os/inc/osWindows.h +++ b/src/os/inc/osWindows.h @@ -67,6 +67,8 @@ extern "C" { #define taosFSendFile(outfile, infile, offset, count) taosFSendFileImp(outfile, infile, offset, size) #define taosTSendFile(dfd, sfd, offset, size) taosTSendFileImp(dfd, sfd, offset, size) #define TAOS_OS_FUNC_FILE_GETTMPFILEPATH +#define TAOS_OS_FUNC_FILE_FTRUNCATE + extern int taosFtruncate(int fd, int64_t length); #define TAOS_OS_FUNC_MATH #define SWAP(a, b, c) \ @@ -90,6 +92,7 @@ extern "C" { #define taosCloseSocket(fd) closesocket(fd) #define TAOS_OS_FUNC_STRING_WCHAR + int twcslen(const wchar_t *wcs); #define TAOS_OS_FUNC_STRING_GETLINE #define TAOS_OS_FUNC_STRING_STR2INT64 #ifdef _TD_GO_DLL_ @@ -100,7 +103,7 @@ extern "C" { #endif #define TAOS_OS_FUNC_STRING_STRDUP #define taosStrdupImp(str) _strdup(str) - #define taosStrndupImp(str, size) _strndup(str, size) + #define taosStrndupImp(str, size) _strndup(str, size) #define TAOS_OS_FUNC_SYSINFO diff --git a/src/os/src/windows/w64File.c b/src/os/src/windows/w64File.c index d75549b37753accd6b45df8fa27d41f9b83af18c..5549c078a5220d3e493ce21e2c19e38fb9611cbb 100644 --- a/src/os/src/windows/w64File.c +++ b/src/os/src/windows/w64File.c @@ -78,4 +78,9 @@ int taosFSendFileImp(FILE* out_file, FILE* in_file, int64_t* offset, int32_t cou ssize_t taosTSendFileImp(int dfd, int sfd, off_t *offset, size_t size) { uError("taosTSendFileImp no implemented yet"); return 0; +} + +int taosFtruncate(int fd, int64_t length) { + uError("taosFtruncate no implemented yet"); + return 0; } \ No newline at end of file diff --git a/src/os/src/windows/w64String.c b/src/os/src/windows/w64String.c index f35b2ca7168d35225d1fd85e785c88cbec246d0e..e3ac7d88322b9b1722460c7c0415d7a6c932c620 100644 --- a/src/os/src/windows/w64String.c +++ b/src/os/src/windows/w64String.c @@ -78,13 +78,13 @@ char *strndup(const char *s, size_t n) { return r; } -size_t twcslen(const wchar_t *wcs) { +int twcslen(const wchar_t *wcs) { int *wstr = (int *)wcs; if (NULL == wstr) { return 0; } - size_t n = 0; + int n = 0; while (1) { if (0 == *wstr++) { break; diff --git a/src/util/inc/tstoken.h b/src/util/inc/tstoken.h index 7b0e498d766f2564b417291febb559b613fd3f1d..258e62cf8a7808393493bf57eff46d7541dd2279 100644 --- a/src/util/inc/tstoken.h +++ b/src/util/inc/tstoken.h @@ -82,7 +82,7 @@ static FORCE_INLINE int32_t isValidNumber(const SSQLToken* pToken) { const char* z = pToken->z; int32_t type = TK_ILLEGAL; - int32_t i = 0; + uint32_t i = 0; for(; i < pToken->n; ++i) { switch (z[i]) { case '+': diff --git a/src/util/src/tkvstore.c b/src/util/src/tkvstore.c index bd0d71f9636ffeb65e8927b9944a31ff66276dd0..a664ce0e3b5a023966df205d6b81733de75919d4 100644 --- a/src/util/src/tkvstore.c +++ b/src/util/src/tkvstore.c @@ -114,7 +114,7 @@ SKVStore *tdOpenKVStore(char *fname, iterFunc iFunc, afterFunc aFunc, void *appH if (tdLoadKVStoreHeader(pStore->sfd, pStore->fsnap, &info) < 0) { if (terrno != TSDB_CODE_COM_FILE_CORRUPTED) goto _err; } else { - if (ftruncate(pStore->fd, info.size) < 0) { + if (taosFtruncate(pStore->fd, info.size) < 0) { uError("failed to truncate %s to %" PRId64 " size since %s", pStore->fname, info.size, strerror(errno)); terrno = TAOS_SYSTEM_ERROR(errno); goto _err;