[td-3874] <fix>: enable the value of UINT64_MAX-1 to be the valid tag values.
This commit is contained in:
parent
3f18a8a55a
commit
b3444b584f
|
@ -47,10 +47,14 @@ void tVariantCreate(tVariant *pVar, SStrToken *token) {
|
||||||
case TSDB_DATA_TYPE_BIGINT:
|
case TSDB_DATA_TYPE_BIGINT:
|
||||||
case TSDB_DATA_TYPE_INT:{
|
case TSDB_DATA_TYPE_INT:{
|
||||||
ret = tStrToInteger(token->z, token->type, token->n, &pVar->i64, true);
|
ret = tStrToInteger(token->z, token->type, token->n, &pVar->i64, true);
|
||||||
|
if (ret != 0) {
|
||||||
|
// data overflow, try unsigned parse the input number
|
||||||
|
ret = tStrToInteger(token->z, token->type, token->n, &pVar->i64, false);
|
||||||
if (ret != 0) {
|
if (ret != 0) {
|
||||||
pVar->nType = -1; // -1 means error type
|
pVar->nType = -1; // -1 means error type
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -525,6 +529,8 @@ static FORCE_INLINE int32_t convertToInteger(tVariant *pVariant, int64_t *result
|
||||||
}
|
}
|
||||||
|
|
||||||
bool code = false;
|
bool code = false;
|
||||||
|
|
||||||
|
uint64_t ui = 0;
|
||||||
switch(type) {
|
switch(type) {
|
||||||
case TSDB_DATA_TYPE_TINYINT:
|
case TSDB_DATA_TYPE_TINYINT:
|
||||||
code = IS_VALID_TINYINT(*result); break;
|
code = IS_VALID_TINYINT(*result); break;
|
||||||
|
@ -535,13 +541,17 @@ static FORCE_INLINE int32_t convertToInteger(tVariant *pVariant, int64_t *result
|
||||||
case TSDB_DATA_TYPE_BIGINT:
|
case TSDB_DATA_TYPE_BIGINT:
|
||||||
code = IS_VALID_BIGINT(*result); break;
|
code = IS_VALID_BIGINT(*result); break;
|
||||||
case TSDB_DATA_TYPE_UTINYINT:
|
case TSDB_DATA_TYPE_UTINYINT:
|
||||||
code = IS_VALID_UTINYINT(*result); break;
|
ui = *result;
|
||||||
|
code = IS_VALID_UTINYINT(ui); break;
|
||||||
case TSDB_DATA_TYPE_USMALLINT:
|
case TSDB_DATA_TYPE_USMALLINT:
|
||||||
code = IS_VALID_USMALLINT(*result); break;
|
ui = *result;
|
||||||
|
code = IS_VALID_USMALLINT(ui); break;
|
||||||
case TSDB_DATA_TYPE_UINT:
|
case TSDB_DATA_TYPE_UINT:
|
||||||
code = IS_VALID_UINT(*result); break;
|
ui = *result;
|
||||||
|
code = IS_VALID_UINT(ui); break;
|
||||||
case TSDB_DATA_TYPE_UBIGINT:
|
case TSDB_DATA_TYPE_UBIGINT:
|
||||||
code = IS_VALID_UBIGINT(*result); break;
|
ui = *result;
|
||||||
|
code = IS_VALID_UBIGINT(ui); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return code? 0:-1;
|
return code? 0:-1;
|
||||||
|
|
Loading…
Reference in New Issue