[td-255] add test cases, fix compiler error.
This commit is contained in:
parent
41befca45d
commit
0d7a58f0ca
|
@ -153,9 +153,9 @@ typedef struct STSCompInfo {
|
||||||
|
|
||||||
typedef struct SRateInfo {
|
typedef struct SRateInfo {
|
||||||
int64_t CorrectionValue;
|
int64_t CorrectionValue;
|
||||||
int64_t firstValue;
|
double firstValue;
|
||||||
TSKEY firstKey;
|
TSKEY firstKey;
|
||||||
int64_t lastValue;
|
double lastValue;
|
||||||
TSKEY lastKey;
|
TSKEY lastKey;
|
||||||
int8_t hasResult; // flag to denote has value
|
int8_t hasResult; // flag to denote has value
|
||||||
bool isIRate; // true for IRate functions, false for Rate functions
|
bool isIRate; // true for IRate functions, false for Rate functions
|
||||||
|
@ -4484,8 +4484,7 @@ static double do_calc_rate(const SRateInfo* pRateInfo, int64_t tickPerSec) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t diff = 0;
|
double diff = 0;
|
||||||
|
|
||||||
if (pRateInfo->isIRate) {
|
if (pRateInfo->isIRate) {
|
||||||
// If the previous value of the last is greater than the last value, only keep the last point instead of the delta
|
// If the previous value of the last is greater than the last value, only keep the last point instead of the delta
|
||||||
// value between two values.
|
// value between two values.
|
||||||
|
@ -4551,8 +4550,6 @@ static void rate_function(SQLFunctionCtx *pCtx) {
|
||||||
if ((INT64_MIN == pRateInfo->firstValue) || (INT64_MIN == pRateInfo->firstKey)) {
|
if ((INT64_MIN == pRateInfo->firstValue) || (INT64_MIN == pRateInfo->firstKey)) {
|
||||||
pRateInfo->firstValue = v;
|
pRateInfo->firstValue = v;
|
||||||
pRateInfo->firstKey = primaryKey[i];
|
pRateInfo->firstKey = primaryKey[i];
|
||||||
|
|
||||||
qDebug("firstValue:%" PRId64 " firstKey:%" PRId64, pRateInfo->firstValue, pRateInfo->firstKey);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (INT64_MIN == pRateInfo->lastValue) {
|
if (INT64_MIN == pRateInfo->lastValue) {
|
||||||
|
@ -4564,7 +4561,6 @@ static void rate_function(SQLFunctionCtx *pCtx) {
|
||||||
|
|
||||||
pRateInfo->lastValue = v;
|
pRateInfo->lastValue = v;
|
||||||
pRateInfo->lastKey = primaryKey[i];
|
pRateInfo->lastKey = primaryKey[i];
|
||||||
qDebug("lastValue:%" PRId64 " lastKey:%" PRId64, pRateInfo->lastValue, pRateInfo->lastKey);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pCtx->hasNull) {
|
if (!pCtx->hasNull) {
|
||||||
|
@ -4612,8 +4608,6 @@ static void rate_function_f(SQLFunctionCtx *pCtx, int32_t index) {
|
||||||
pRateInfo->lastValue = v;
|
pRateInfo->lastValue = v;
|
||||||
pRateInfo->lastKey = primaryKey[index];
|
pRateInfo->lastKey = primaryKey[index];
|
||||||
|
|
||||||
qDebug("====%p rate_function_f() index:%d lastValue:%" PRId64 " lastKey:%" PRId64 " CorrectionValue:%" PRId64, pCtx, index, pRateInfo->lastValue, pRateInfo->lastKey, pRateInfo->CorrectionValue);
|
|
||||||
|
|
||||||
SET_VAL(pCtx, 1, 1);
|
SET_VAL(pCtx, 1, 1);
|
||||||
|
|
||||||
// set has result flag
|
// set has result flag
|
||||||
|
@ -4632,10 +4626,6 @@ static void rate_func_copy(SQLFunctionCtx *pCtx) {
|
||||||
SResultRowCellInfo *pResInfo = GET_RES_INFO(pCtx);
|
SResultRowCellInfo *pResInfo = GET_RES_INFO(pCtx);
|
||||||
memcpy(GET_ROWCELL_INTERBUF(pResInfo), pCtx->pInput, (size_t)pCtx->inputBytes);
|
memcpy(GET_ROWCELL_INTERBUF(pResInfo), pCtx->pInput, (size_t)pCtx->inputBytes);
|
||||||
pResInfo->hasResult = ((SRateInfo*)pCtx->pInput)->hasResult;
|
pResInfo->hasResult = ((SRateInfo*)pCtx->pInput)->hasResult;
|
||||||
|
|
||||||
SRateInfo* pRateInfo = (SRateInfo*)pCtx->pInput;
|
|
||||||
qDebug("%p rate_func_merge() firstKey:%" PRId64 " lastKey:%" PRId64 " firstValue:%" PRId64 " lastValue:%" PRId64 " CorrectionValue:%" PRId64 " hasResult:%d",
|
|
||||||
pCtx, pRateInfo->firstKey, pRateInfo->lastKey, pRateInfo->firstValue, pRateInfo->lastValue, pRateInfo->CorrectionValue, pRateInfo->hasResult);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rate_finalizer(SQLFunctionCtx *pCtx) {
|
static void rate_finalizer(SQLFunctionCtx *pCtx) {
|
||||||
|
@ -4671,8 +4661,8 @@ static void irate_function(SQLFunctionCtx *pCtx) {
|
||||||
|
|
||||||
notNullElems++;
|
notNullElems++;
|
||||||
|
|
||||||
int64_t v = 0;
|
double v = 0;
|
||||||
GET_TYPED_DATA(v, int64_t, pCtx->inputType, pData);
|
GET_TYPED_DATA(v, double, pCtx->inputType, pData);
|
||||||
|
|
||||||
if ((INT64_MIN == pRateInfo->lastKey) || primaryKey[i] > pRateInfo->lastKey) {
|
if ((INT64_MIN == pRateInfo->lastKey) || primaryKey[i] > pRateInfo->lastKey) {
|
||||||
pRateInfo->lastValue = v;
|
pRateInfo->lastValue = v;
|
||||||
|
@ -4720,8 +4710,7 @@ static void irate_function_f(SQLFunctionCtx *pCtx, int32_t index) {
|
||||||
pRateInfo->lastValue = v;
|
pRateInfo->lastValue = v;
|
||||||
pRateInfo->lastKey = primaryKey[index];
|
pRateInfo->lastKey = primaryKey[index];
|
||||||
|
|
||||||
qDebug("====%p irate_function_f() index:%d lastValue:%" PRId64 " lastKey:%" PRId64 " firstValue:%" PRId64 " firstKey:%" PRId64, pCtx, index, pRateInfo->lastValue, pRateInfo->lastKey, pRateInfo->firstValue , pRateInfo->firstKey);
|
// qDebug("====%p irate_function_f() index:%d lastValue:%" PRId64 " lastKey:%" PRId64 " firstValue:%" PRId64 " firstKey:%" PRId64, pCtx, index, pRateInfo->lastValue, pRateInfo->lastKey, pRateInfo->firstValue , pRateInfo->firstKey);
|
||||||
|
|
||||||
SET_VAL(pCtx, 1, 1);
|
SET_VAL(pCtx, 1, 1);
|
||||||
|
|
||||||
// set has result flag
|
// set has result flag
|
||||||
|
@ -4899,10 +4888,10 @@ void blockinfo_func_finalizer(SQLFunctionCtx* pCtx) {
|
||||||
int32_t functionCompatList[] = {
|
int32_t functionCompatList[] = {
|
||||||
// count, sum, avg, min, max, stddev, percentile, apercentile, first, last
|
// count, sum, avg, min, max, stddev, percentile, apercentile, first, last
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
// last_row,top, bottom, spread, twa, leastsqr, ts, ts_dummy, tag_dummy, ts_z
|
// last_row,top, bottom, spread, twa, leastsqr, ts, ts_dummy, tag_dummy, ts_comp
|
||||||
4, -1, -1, 1, 1, 1, 1, 1, 1, -1,
|
4, -1, -1, 1, 1, 1, 1, 1, 1, -1,
|
||||||
// tag, colprj, tagprj, arithmetic, diff, first_dist, last_dist, interp rate irate
|
// tag, colprj, tagprj, arithmetic, diff, first_dist, last_dist, stddev_dst, interp rate irate
|
||||||
1, 1, 1, 1, -1, 1, 1, 5, 1, 1,
|
1, 1, 1, 1, -1, 1, 1, 1, 5, 1, 1,
|
||||||
// tid_tag, blk_info
|
// tid_tag, blk_info
|
||||||
6, 7
|
6, 7
|
||||||
};
|
};
|
||||||
|
|
|
@ -814,3 +814,121 @@ if $data00 != 1 then
|
||||||
endi
|
endi
|
||||||
|
|
||||||
print ====================> TODO stddev + normal column filter
|
print ====================> TODO stddev + normal column filter
|
||||||
|
|
||||||
|
|
||||||
|
print ====================> irate
|
||||||
|
sql select irate(k) from t1
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data00 != 0.000027778 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select irate(k) from t1 where ts>='2015-8-18 00:30:00.000'
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data00 != 0.000000000 then
|
||||||
|
print expect 0.000000000, actual $data00
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select irate(k) from t1 where ts>='2015-8-18 00:06:00.000' and ts<='2015-8-18 00:12:000';
|
||||||
|
if $rows != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data00 != 0.005633334 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select irate(k) from t1 interval(10a)
|
||||||
|
if $rows != 6 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data01 != 0.000000000 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data11 != 0.000000000 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data51 != 0.000000000 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select count(*),irate(k) from t1 interval(10m)
|
||||||
|
if $rows != 4 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data00 != @15-08-18 00:00:00.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data01 != 2 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data02 != 0.000144445 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data10 != @15-08-18 00:10:00.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data11 != 2 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data12 != 0.000272222 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data20 != @15-08-18 00:20:00.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data21 != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data22 != 0.000000000 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data30 != @15-08-18 00:30:00.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data31 != 1 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data32 != 0.000000000 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select count(*),irate(k) from t1 interval(10m) order by ts desc
|
||||||
|
if $rows != 4 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data30 != @15-08-18 00:00:00.000@ then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data31 != 2 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
if $data32 != 0.000144445 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue