diff --git a/src/client/src/tscFunctionImpl.c b/src/client/src/tscFunctionImpl.c index 7df911da656e48951b316557f9b2991817c5fffc..f5a27311f2333ba172bf5d2e484aede49b17c5ab 100644 --- a/src/client/src/tscFunctionImpl.c +++ b/src/client/src/tscFunctionImpl.c @@ -2481,7 +2481,7 @@ static void percentile_function(SQLFunctionCtx *pCtx) { } double v = 0; - GET_TYPED_DATA(v, pCtx->inputType, data); + GET_TYPED_DATA(v, double, pCtx->inputType, data); if (v < GET_DOUBLE_VAL(&pInfo->minval)) { SET_DOUBLE_VAL(&pInfo->minval, v); @@ -2525,7 +2525,7 @@ static void percentile_function_f(SQLFunctionCtx *pCtx, int32_t index) { if (pInfo->stage == 0) { double v = 0; - GET_TYPED_DATA(v, pCtx->inputType, pData); + GET_TYPED_DATA(v, double, pCtx->inputType, pData); if (v < GET_DOUBLE_VAL(&pInfo->minval)) { SET_DOUBLE_VAL(&pInfo->minval, v); @@ -2616,7 +2616,7 @@ static void apercentile_function(SQLFunctionCtx *pCtx) { notNullElems += 1; double v = 0; - GET_TYPED_DATA(v, pCtx->inputType, data); + GET_TYPED_DATA(v, double, pCtx->inputType, data); tHistogramAdd(&pInfo->pHisto, v); } @@ -2641,7 +2641,7 @@ static void apercentile_function_f(SQLFunctionCtx *pCtx, int32_t index) { SAPercentileInfo *pInfo = getAPerctInfo(pCtx); double v = 0; - GET_TYPED_DATA(v, pCtx->inputType, pData); + GET_TYPED_DATA(v, double, pCtx->inputType, pData); tHistogramAdd(&pInfo->pHisto, v); @@ -4064,7 +4064,7 @@ static void rate_function(SQLFunctionCtx *pCtx) { notNullElems++; int64_t v = 0; - GET_TYPED_DATA(v, pCtx->inputType, pData); + GET_TYPED_DATA(v, int64_t, pCtx->inputType, pData); if ((INT64_MIN == pRateInfo->firstValue) || (INT64_MIN == pRateInfo->firstKey)) { pRateInfo->firstValue = v; @@ -4114,7 +4114,7 @@ static void rate_function_f(SQLFunctionCtx *pCtx, int32_t index) { TSKEY *primaryKey = pCtx->ptsList; int64_t v = 0; - GET_TYPED_DATA(v, pCtx->inputType, pData); + GET_TYPED_DATA(v, int64_t, pCtx->inputType, pData); if ((INT64_MIN == pRateInfo->firstValue) || (INT64_MIN == pRateInfo->firstKey)) { pRateInfo->firstValue = v; @@ -4241,7 +4241,7 @@ static void irate_function(SQLFunctionCtx *pCtx) { notNullElems++; int64_t v = 0; - GET_TYPED_DATA(v, pCtx->inputType, pData); + GET_TYPED_DATA(v, int64_t, pCtx->inputType, pData); // TODO: calc once if only call this function once ???? if ((INT64_MIN == pRateInfo->lastKey) || (INT64_MIN == pRateInfo->lastValue)) { @@ -4286,7 +4286,7 @@ static void irate_function_f(SQLFunctionCtx *pCtx, int32_t index) { TSKEY *primaryKey = pCtx->ptsList; int64_t v = 0; - GET_TYPED_DATA(v, pCtx->inputType, pData); + GET_TYPED_DATA(v, int64_t, pCtx->inputType, pData); pRateInfo->firstKey = pRateInfo->lastKey; pRateInfo->firstValue = pRateInfo->lastValue; diff --git a/src/inc/ttype.h b/src/inc/ttype.h index caa7c58f4077201076335651a459dd1fa4d202d8..7d5779c43f7c05ed7675cb59ef3036c14f852938 100644 --- a/src/inc/ttype.h +++ b/src/inc/ttype.h @@ -7,25 +7,25 @@ extern "C" { #include "taosdef.h" -#define GET_TYPED_DATA(_v, _type, _data) \ +#define GET_TYPED_DATA(_v, _finalType, _type, _data) \ switch (_type) { \ case TSDB_DATA_TYPE_TINYINT: \ - (_v) = GET_INT8_VAL(_data); \ + (_v) = (_finalType)GET_INT8_VAL(_data); \ break; \ case TSDB_DATA_TYPE_SMALLINT: \ - (_v) = GET_INT16_VAL(_data); \ + (_v) = (_finalType)GET_INT16_VAL(_data); \ break; \ case TSDB_DATA_TYPE_BIGINT: \ - (_v) = (GET_INT64_VAL(_data)); \ + (_v) = (_finalType)(GET_INT64_VAL(_data)); \ break; \ case TSDB_DATA_TYPE_FLOAT: \ - (_v) = GET_FLOAT_VAL(_data); \ + (_v) = (_finalType)GET_FLOAT_VAL(_data); \ break; \ case TSDB_DATA_TYPE_DOUBLE: \ - (_v) = GET_DOUBLE_VAL(_data); \ + (_v) = (_finalType)GET_DOUBLE_VAL(_data); \ break; \ default: \ - (_v) = GET_INT32_VAL(_data); \ + (_v) = (_finalType)GET_INT32_VAL(_data); \ break; \ }; diff --git a/src/query/src/qFill.c b/src/query/src/qFill.c index 8560bef35d76bc6827a06a0c5f765d560d429c4f..8a5efafced81cfe8703f629f5f7969ced09f2dc0 100644 --- a/src/query/src/qFill.c +++ b/src/query/src/qFill.c @@ -237,8 +237,8 @@ int32_t taosGetLinearInterpolationVal(int32_t type, SPoint* point1, SPoint* poin double v1 = -1; double v2 = -1; - GET_TYPED_DATA(v1, type, point1->val); - GET_TYPED_DATA(v2, type, point2->val); + GET_TYPED_DATA(v1, double, type, point1->val); + GET_TYPED_DATA(v2, double, type, point2->val); double r = DO_INTERPOLATION(v1, v2, point1->key, point2->key, point->key);