lastrow_query.sim 6.8 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
sql connect

$dbPrefix = lr_db
$tbPrefix = lr_tb
$stbPrefix = lr_stb
$tbNum = 8
$rowNum = 60 * 24
$totalNum = $tbNum * $rowNum
$ts0 = 1537146000000
$delta = 60000
print ========== lastrow_query.sim
$i = 0
$db = $dbPrefix . $i
$stb = $stbPrefix . $i

sql use $db

print ========>TD-3231 last_row with group by column error
S
Shengliang Guan 已提交
19
sql select last_row(c1) from $stb group by c1;
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

##### select lastrow from STable with two vnodes, timestamp decreases from tables in vnode0 to tables in vnode1
sql select last_row(*) from $stb
if $rows != 1 then
  return -1
endi
if $data00 != @18-09-25 09:00:00.000@ then
  return -1
endi
if $data01 != 1439 then
  return -1   
endi  
if $data02 != NULL then
  return -1  
endi 
if $data03 != 1439.00000 then
  return -1  
endi    
if $data04 != 1439.000000000 then
  return -1
endi
if $data06 != 31 then
  return -1
endi 
if $data07 != 1 then
  return -1
endi
if $data08 != BINARY then
  print expect BINARY actual: $data08
  return -1
endi
if $data09 != NCHAR then
  print expect NCHAR actual: $data09
  return -1
endi

# regression test case 1
sql select count(*) from lr_tb1 where ts>'2018-09-18 08:45:00.1' and ts<'2018-09-18 08:45:00.2'
if $row != 0 then
  return -1
endi

# regression test case 2
sql select count(*) from lr_db0.lr_stb0 where ts>'2018-9-18 8:00:00' and ts<'2018-9-18 14:00:00' interval(1s) fill(NULL);
if $row != 21600 then
  return -1
endi

#regression test case 3
S
Shengliang Guan 已提交
69
sql select _wstart, t1,t1,count(*),t1,t1 from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by t1 interval(1h) fill(NULL) limit 1
70 71 72
if $row != 2 then
  return -1
endi
S
Shengliang Guan 已提交
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
if $data01 != NULL then
  return -1
endi
if $data02 != NULL then
  return -1
endi
if  $data03 != NULL then
  return -1
endi
if $data11 != 7 then
  return -1
endi
if $data12 != 7 then
  return -1
endi
if $data13 != 59 then
  print expect 59, actual: $data03
  return -1
endi
if $data14 != 7 then
  return -1
endi
S
Shengliang Guan 已提交
95 96 97

sql select t1,t1,count(*),t1,t1 from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by t1 interval(1h) fill(NULL) limit 9
if $rows != 18 then
98 99 100
  return -1
endi

S
Shengliang Guan 已提交
101 102
sql select t1,t1,count(*),t1,t1 from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by t1 interval(1h) fill(NULL) limit 12
if $rows != 24 then
103 104 105
  return -1
endi

S
Shengliang Guan 已提交
106 107
sql select t1,t1,count(*),t1,t1 from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by t1 interval(1h) fill(NULL) limit 25
if $rows != 48 then
108 109 110
  return -1
endi

S
Shengliang Guan 已提交
111 112
sql select t1,t1,count(*),t1,t1 from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by t1 interval(1h) fill(NULL) limit 25 offset 1
if $rows != 46 then
113 114 115
  return -1
endi

S
Shengliang Guan 已提交
116 117
sql select count(*),tbname,t1,t1,tbname from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by tbname, t1 interval(1d) fill(NULL) slimit 2
if $rows != 2 then
118 119 120
  return -1
endi

S
Shengliang Guan 已提交
121 122
sql select count(*),tbname,t1,t1,tbname from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by tbname, t1 interval(1d) fill(NULL) slimit 2 soffset 1
if $rows != 1 then
123 124 125
  return -1
endi

S
Shengliang Guan 已提交
126 127
sql select count(*),tbname,t1,t1,tbname from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by tbname, t1 interval(1d) fill(NULL) slimit 1 
if $rows != 1 then
128 129 130
  return -1
endi

S
Shengliang Guan 已提交
131 132
sql select count(*),tbname,t1,t1,tbname from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by tbname, t1 interval(1d) fill(NULL) slimit 1 soffset 1
if $rows != 0 then
133 134 135
  return -1
endi

S
Shengliang Guan 已提交
136 137
sql select count(*),tbname,t1,t1,tbname from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by tbname, t1 interval(1d) fill(NULL) slimit 1 soffset 0
if $rows != 0 then
138 139 140
  return -1
endi

S
Shengliang Guan 已提交
141
return
142

S
Shengliang Guan 已提交
143 144
sql select t1,t1,count(*),tbname,t1,t1,tbname from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by tbname, t1 interval(1s) fill(NULL) slimit 2 soffset 0 limit 250000 offset 1
if $rows != 172799 then
145 146 147
  return -1
endi

S
Shengliang Guan 已提交
148
sql select t1,t1,count(*),tbname,t1,t1,tbname from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by tbname, t1 interval(1s) fill(NULL) slimit 1 soffset 0 limit 250000 offset 1
149 150 151 152
if $rows != 86399 then
  return -1
endi

S
Shengliang Guan 已提交
153 154
sql select t1,t1,count(*),t1,t1 from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by t1 interval(1h) fill(NULL) order by ts DESC limit 30
if $rows != 30 then
155 156 157
  return -1
endi

S
Shengliang Guan 已提交
158 159
sql select t1,t1,count(*),t1,t1 from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by t1 interval(1h) fill(NULL) limit 2
if $rows != 2 then
160 161 162
  return -1
endi

S
Shengliang Guan 已提交
163
sql select t1,t1,count(*),tbname,t1,t1,tbname from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by tbname, t1 interval(1s) fill(NULL) slimit 1 soffset 1 limit 250000 offset 1
164 165 166 167
if $rows != 86399 then
  return -1
endi

S
Shengliang Guan 已提交
168
sql select t1,t1,count(*),t1,t1 from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by t1 interval(1h) fill(NULL) order by ts desc limit 1
169 170 171 172
if $rows != 2 then
  return -1
endi

S
Shengliang Guan 已提交
173
sql select t1,t1,count(*),t1,t1 from lr_stb0 where ts>'2018-09-24 00:00:00.000' and ts<'2018-09-25 00:00:00.000' partition by t1 interval(1h) fill(NULL) limit 25 offset 1
174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241
if $rows != 46 then
  return -1
endi

print ========>td-1317, empty table last_row query crashed
sql drop table if exists m1;
sql create table m1(ts timestamp, k int) tags (a int);
sql create table t1 using m1 tags(1);
sql create table t2 using m1 tags(2);

sql select last_row(*) from t1
if $rows != 0 then
  return -1
endi
sql select last_row(*) from m1
if $rows != 0 then
  return -1
endi
sql select last_row(*) from m1 where tbname in ('t1')
if $rows != 0 then
  return -1
endi

sql insert into t1 values('2019-1-1 1:1:1', 1);
print ===================> last_row query against normal table along with ts/tbname
sql select last_row(*),ts,'k' from t1;
if $rows != 1 then
  return -1
endi

print ===================> last_row + user-defined column + normal tables
sql select last_row(ts), 'abc', 1234.9384, ts from t1
if $rows != 1 then
  return -1
endi
if $data01 != @abc@ then
  print expect abc, actual $data02
  return -1
endi
if $data02 !=  1234.938400000 then
  return -1
endi
if $data03 != @19-01-01 01:01:01.000@ then
  print expect 19-01-01 01:01:01.000, actual:$data03
  return -1
endi

print ===================> last_row + stable + ts/tag column + condition + udf
sql select last_row(*), ts, 'abc', 123.981, tbname from m1
if $rows != 1 then
  return -1
endi
if $data02 != @19-01-01 01:01:01.000@ then
    return -1
endi
if $data03 != @abc@ then
    return -1
endi
if $data04 != 123.981000000 then
    print expect 123.981000000, actual: $data04
    return -1
endi

sql create table tu(ts timestamp, k int)
sql select last_row(*) from tu
if $row != 0 then
  return -1
endi