diff --git a/src/client/src/tscParseInsert.c b/src/client/src/tscParseInsert.c index 4bfdca882c1b00cdf96a1ab87c7dd3e2277dad1c..b3c9d7981a5189e6cada78a9e5eb4dfd5443121d 100644 --- a/src/client/src/tscParseInsert.c +++ b/src/client/src/tscParseInsert.c @@ -46,8 +46,16 @@ static int32_t tscToInteger(SSQLToken *pToken, int64_t *value, char **endPtr) { return TK_ILLEGAL; } + + int32_t radix = 10; + if (pToken->type == TK_HEX) { + radix = 16; + } else if (pToken->type == TK_BIN) { + radix = 2; + } + errno = 0; - *value = strtoll(pToken->z, endPtr, 0); + *value = strtoll(pToken->z, endPtr, radix); if (**endPtr == 'e' || **endPtr == 'E' || **endPtr == '.') { errno = 0; double v = round(strtod(pToken->z, endPtr));