diff --git a/src/client/src/tscParseInsert.c b/src/client/src/tscParseInsert.c index d9c86a955e137f49a98436dc0c21abfb76a7b199..6e3fd6cfce703ef3557f4e96cdf74f0444bb7e81 100644 --- a/src/client/src/tscParseInsert.c +++ b/src/client/src/tscParseInsert.c @@ -257,7 +257,9 @@ int32_t tsParseOneColumnData(SSchema *pSchema, SSQLToken *pToken, char *payload, if (pToken->type == TK_NULL) { *((int32_t *)payload) = TSDB_DATA_FLOAT_NULL; } else if ((pToken->type == TK_STRING) && (pToken->n != 0) && - (strncasecmp(TSDB_DATA_NULL_STR_L, pToken->z, pToken->n) == 0)) { + ((strncasecmp(TSDB_DATA_NULL_STR_L, pToken->z, pToken->n) == 0) + || (strncasecmp("nan", pToken->z, pToken->n) == 0) + || (strncasecmp("-nan", pToken->z, pToken->n) == 0))) { *((int32_t *)payload) = TSDB_DATA_FLOAT_NULL; } else { double dv; @@ -281,8 +283,10 @@ int32_t tsParseOneColumnData(SSchema *pSchema, SSQLToken *pToken, char *payload, case TSDB_DATA_TYPE_DOUBLE: if (pToken->type == TK_NULL) { *((int64_t *)payload) = TSDB_DATA_DOUBLE_NULL; - } else if ((pToken->type == TK_STRING) && (pToken->n != 0) && - (strncasecmp(TSDB_DATA_NULL_STR_L, pToken->z, pToken->n) == 0)) { + } else if ((pToken->type == TK_STRING) && (pToken->n != 0) && + ((strncasecmp(TSDB_DATA_NULL_STR_L, pToken->z, pToken->n) == 0) + || (strncasecmp("nan", pToken->z, pToken->n) == 0) + || (strncasecmp("-nan", pToken->z, pToken->n) == 0))) { *((int64_t *)payload) = TSDB_DATA_DOUBLE_NULL; } else { double dv;