[td-1826]
This commit is contained in:
parent
98edc4e21a
commit
6f3023fba9
|
@ -1854,8 +1854,11 @@ static bool needReverseScan(SQuery *pQuery) {
|
|||
}
|
||||
|
||||
if (functionId == TSDB_FUNC_LAST || functionId == TSDB_FUNC_LAST_DST) {
|
||||
// the scan order to acquire the last result of the specified column
|
||||
int32_t order = (int32_t)pQuery->pSelectExpr[i].base.arg->argValue.i64;
|
||||
return order != pQuery->order.order;
|
||||
if (order != pQuery->order.order) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -132,9 +132,134 @@ sql select join_mt0.ts, join_mt1.t1, join_mt0.t1, join_mt1.tbname, join_mt0.tbna
|
|||
|
||||
sql select join_mt0.ts, join_mt1.t1, join_mt0.t1, join_mt1.tbname, join_mt0.tbname from join_mt0, join_mt1 where join_mt0.ts=join_mt1.ts and join_mt0.t1=join_mt1.t1 limit 1
|
||||
|
||||
sql select count(join_mt0.c1), sum(join_mt1.c2), first(join_mt0.c5), last(join_mt1.c7) from join_mt0, join_mt1 where join_mt0.t1=join_mt1.t1 and join_mt0.ts=join_mt1.ts interval(10a) group by join_mt0.t1 order by join_mt0.ts desc;
|
||||
#1970-01-01 08:01:40.800 | 10 | 45.000000000 | 0 | true | false | 0 |
|
||||
#1970-01-01 08:01:40.790 | 10 | 945.000000000 | 90 | true | true | 0 |
|
||||
|
||||
sql select count(join_mt0.c1), sum(join_mt1.c2), first(join_mt0.c5), last(join_mt1.c7), first(join_mt1.c7) from join_mt0, join_mt1 where join_mt0.t1=join_mt1.t1 and join_mt0.ts=join_mt1.ts interval(10a) group by join_mt0.t1 order by join_mt0.ts desc limit 20 offset 19;
|
||||
if $rows != 100 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
# c5 is null ! error
|
||||
|
||||
sql select count(join_mt0.c1), sum(join_mt0.c2)/count(*), avg(c2), first(join_mt0.c5), last(c7) from join_mt0 interval(10a) group by join_mt0.t1 order by join_mt0.ts desc;
|
||||
if $rows != 100 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data00 != @70-01-01 08:01:40.990@ then
|
||||
print expect 0, actual: $data00
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data01 != 30 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data02 != 94.500000000 then
|
||||
print expect 94.500000000, actual $data02
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data03 != 94.500000000 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data04 != 90 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data05 != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data06 != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data10 != @70-01-01 08:01:40.980@ then
|
||||
print expect 70-01-01 08:01:40.980, actual: $data10
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data11 != 30 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data12 != 84.500000000 then
|
||||
print expect 84.500000000, actual $data12
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data13 != 84.500000000 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data14 != 80 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data15 != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data16 != 2 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
# this function will cause shell crash
|
||||
sql select count(join_mt0.c1), first(join_mt0.c1) from join_mt0, join_mt1 where join_mt0.t1=join_mt1.t1 and join_mt0.ts=join_mt1.ts interval(10a) group by join_mt0.t1 order by join_mt0.ts desc;
|
||||
if $rows != 100 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data00 != @70-01-01 08:01:40.990@ then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data01 != 10 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data02 != 90 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data03 != 0 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data11 != 10 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data12 != 80 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data13 != 0 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
sql select last(join_mt1.c7), first(join_mt1.c7) from join_mt0, join_mt1 where join_mt0.t1=join_mt1.t1 and join_mt0.ts=join_mt1.ts interval(10m) group by join_mt0.t1 order by join_mt0.ts asc;
|
||||
if $rows != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data00 != @70-01-01 08:00:00.000@ then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data01 != 1 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data02 != 0 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
if $data03 != 0 then
|
||||
return -1
|
||||
endi
|
||||
|
||||
system sh/exec.sh -n dnode1 -s stop -x SIGINT
|
Loading…
Reference in New Issue